Line Bot(Message API)、Line login、Line notify
最近需建立一個 line bot ,並要能對單一使用者推播訊息
Line Message API(line)
這個主題分成 2 塊,一個是單純從 business.line 去設定,另一個是 掛(hook) web api 去處理。申請完成後,會有一個官方聊天室
從 Line@ 進入管理畫面,從 UI 可以達成以下功能
- 設定 Line 官網畫面、基本資料
- 貼投稿(類似 post/blog),免費版每天3篇
- 可建立活動、優惠券、調查等
- 發訊息
- 加入時的歡迎訊息
- 特定時間推訊息到頻道
- 針對關鍵字回應訊息
- 沒有命中關鍵字的預設訊息
- 觀看好友數量(開發版只有 50人)
- 看統計(瀏覽、訪客、按讚、留言、分享數)
- 圖文選單
- 兩種形式,一種按鈕用自己做的圖片,另一種直接用 icon + 文字
- 動作(關鍵字):需與"關鍵字回覆"功能,一起用
- 動作(網址):在 Line popup 一個 webview
- 動作(文字):隨意字串,寫 web hook api 會用到
- 文字相關的動作,會模擬 user 輸入訊息,再觸發關聯動作
- 啟動 Message API
Message API 使用時須將"自動回應" 關閉。
在 user 發送訊息到 line 時,因為不需自動回應,文字會直接拋到 hook 的 web api,
程式必須去判斷關鍵字,發送各種 Message 給 user,各種 type
註冊完 Message API,會得到 Channel ID(沒用處)、Channel Secret,必須再去取得 Channel access token,才能使用 sdk
Webhook URL,規定只能用 HTTPS,推薦用 Heroku 或 Cloudflare 免費 SSL。
這邊串通需要花些時間
web api 發送動作有
web api 發送動作有
- reply 回覆:需有 reply_token,每次 request 時都會帶進來,在 body->events[0~n]->replyToken
- push 發給1位:需有 user 的 id
- multicast 發給多位:需有 user 的 id
範例
- laravel 5.3 https://github.com/roc26002w/line-bot
- 撰寫 http service
- laravel 5.4 https://github.com/ferdhika31/laravel-line-bot
- 已經包成 composer
Line Login
- 去 developers.line 註冊 login,記住 Channel ID
- 設定 Callback URL,不一定要 https
- 下載 login 用的 button 圖片 (link)
- html 插入圖片後,給一個超連結到 access.line
https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=剛剛的ChannelID&redirect_uri=剛剛設定的Callback網址&scope=openid%20profile&nonce=隨意亂數
- 似乎沒有 SDK,請先了解 curl https
- 先取得 Access Token,用 POST 打 https://api.line.me/oauth2/v2.1/token(官方文獻)
- code 為剛剛 login 回傳的資料
- 再取得 Profile,用 GET 取 https://api.line.me/v2/profile (官方文獻)
- 剛 token api 回傳的 access token 帶在 header
- 相關欄位(link),建議將 profile 中的 user_id 存在資料庫中
Line Notify
這個服務免費,無發送限制,可以指定1對1(發送到LINE Notify聊天室),或直接發到群組。 可以拿來當作 service error alarm- 登錄服務,指定 CallbackUrl(可先隨意,後面再改),服務名稱到時候會出現在每一個 notify 前面
- ex. 【myservice】hello world
- 做法類似 Line login,在 html 放一張圖,設定超連結
- 注意,連動的服務,同一個能關聯N次,並非覆蓋
- 一般要收推播的,只需要加入群組即可,不用按此按鈕
- 先取得 Access Token,用 POST 打 https://notify-bot.line.me/oauth/token (官方文獻)
- 用 POST 發送 https://notify-api.line.me/api/notify (官方文獻)
https://notify-bot.line.me/oauth/authorize?response_type=code&client_id=line的notifyID&state=亂數&redirect_uri=Callback網址&scope=notify
狀況
- 目前 business.line 沒辦法開啟 web hook,需到 developers.line 開
- 有圖片的 template,必須是 https,不然可能無法顯示訊息
- 含圖片的 template,因為要爬幫圖片,第一次會較慢
參考
Line Bot(Message API)、Line login、Line notify
Reviewed by Wild
on
10/16/2017 02:52:00 下午
Rating:
沒有留言:
沒有Google帳號也可發表意見唷!