Home Assistant 的 LINE bot 整合套件
本專案修改自 yun-s-oh/Homeassistant
本套件僅適用於 LINE bot
若要整合 LIEN Notify 請改用上列 yun-s-oh 的套件
建議使用 HACS 安裝 line-bot
,步驟如下:
HACS > Integrations > 右上三點選單鈕 > Custom repositories > URL: osk2/line-bot
> Category: Integration
將 custom_components/line_bot
複製至 custom_components
將下列設定複製至 configuration.yaml
notify:
- name: line_bot
platform: line_bot
client_id: 'CLIENT_ID'
access_token: 'CHANNEL_ACCESS_TOKEN'
請閱讀 額外資訊 一節以了解 client_id
及 access_token
的取得方式
設定檔為 client_id
及 access_token
的組合
除了可透過上一章節的步驟建立通知服務外,也可透過介面來建立以簡化流程
- 設定 > 整合 > 新增整合 > LINE Bot
- 輸入設定檔名稱(應不同於 configuration.yaml 中的名稱)、client_id 及 access_token
請閱讀 更改設定檔 一節以了解如何使用設定檔
將 LINE 訊息物件傳入服務
service: notify.line_bot
data:
message: >-
{"messages":[{"type": "text", "text": "Hello, world"}]}
若你懶得打字,沒關係,純文字也是支援的
service: notify.line_bot
data:
message: 'Hello, world'
請閱讀 額外資訊 一節以了解 LINE 訊息物件格式
service: notify.line_bot
data:
message: >-
{"messages":[{"type": "text", "text": "Hello, world"}]}
data:
profile: cool_line_bot # 設定檔名稱
client_id
是 LINE 的用戶 ID 或群組 ID
取得 client_id
的步驟不太容易,以下是我的方法
- 建立 Firebase Cloud Functions
- 將下列程式部署至 Cloud Functions
const functions = require('firebase-functions')
exports.helloWorld = functions.https.onRequest((request, response) => {
const events = request.body.events
const source = events.length > 0 ? events[0].source : null
if (source) {
functions.logger.info(source.groupId || source.userId)
}
response.send('Hello from Firebase!')
})
- 在 LINE Messaging API 設定中啟用 webhook
- 將 bot 帳號加入好友或邀請進群組,並跟 bot 對話
- 這時就可以在 Cloud Funtions 的 log 看見
client_id
- 記得再次停用 webhook,否則 log 可能會被塞爆
access_token
可於 LINE Developer 網站取得
前往 https://developers.line.biz/console/channel/<YOUR CHANNEL ID>/messaging-api
可於 Channel access token
新增並取得 token
此套件支援 Messaging API reference 中列出的所有訊息類別
文字訊息範例:
{
"messages": [
{
"type": "text",
"text": "Hello, world"
}
]
}
Flex 訊息範例:
{
"type": "flex",
"altText": "this is a flex message",
"contents": {
"type": "bubble",
"body": {
"type": "box",
"layout": "vertical",
"contents": [
{
"type": "text",
"text": "hello"
},
{
"type": "text",
"text": "world"
}
]
}
}
}
- Flex Message Simulator 協助你快速打造 flex 訊息物件
- #教學 打造你的智慧家庭吧! 把 LINE 提醒變得更有型 (特別感謝 Jason Lee 👏)
此專案依 MIT 授權釋出,請閱讀 LICENSE 以獲得詳細資訊