[LINE bot 好好玩 30 天玩轉 LINE API] 第 7 天:我是會主動說話的機器人!

2020 11th 鐵人賽 LINE

本文同步刊載於 iT 邦幫忙第11屆鐵人賽:[LINE bot 好好玩 30 天玩轉 LINE API] 第 7 天:我是會主動說話的機器人!

前言

前幾天說了這麼多還沒有介紹如何讓機器人主動說話,今天就來介紹如何讓機器人主動說話吧 ~

LINE 官方帳號 2.0

現在申請的 Bot 都是用新的計費方法,新版的計費方法與舊版的計費方法差最多的地方就是免費信息則數的部分,舊版的只要每個月付 798 元變成入門型就可以群發訊息無上限,而新版的就算用到最高月費的 4000 元,一個月也只有 25000 則的免費訊息,不過舊版的 798 元方案好友人數最多只有 20000 人,新版的就算是 0 元方案也沒有好友上限,以上說明應該是比較多人在意的部分,如果要比較個人覺得新版的 CMS 系統其實滿好用的 XD

詳細的新版介紹如下圖片出處

詳細的舊版介紹網站 https://at.line.me/tw/plan

為什麼會有新版介紹與舊版介紹共存的情況呢?這是因為舊版的如果之前有付錢就還會是舊版的,全面升級時間是 2020/3/1,所以目前是共存狀態。

取得使用者 ID

如果要主動發訊息,其中需要一個很重要的東西,就是 User ID!
而要如何取得使用者 ID 呢?
其實只要在 handle event 加上以下 Log 就可以了,而 event 的部分後面章節會詳細介紹,今天就先直接加入這行吧 ~

console.log(`使用者 ID: ${event.source.userId}`);

加入之後我們直接對 Bot 說話就可以看到 ID 了!
如下我的 ID 如下:

使用者 ID: U8955b5b423b1d6be9a9a6e902b0fcccc

詳細的程式碼 Github

主動發送訊息

要主動發送訊息的方法有很多種,可以自己寫 Code 推送、使用 cURL 或是任何可以發送 HTTP Request 的方法,而這邊介紹使用 Postman 來發送。

安裝 Postman

首先下載 Postman

https://i2.wp.com/ithelp.ithome.com.tw/upload/images/20190922/20117701eIZVvdX0UB.png?w=640&ssl=1

打開 Postman

大家可以選擇登入或是點選下面的 Skip signing in and take me straight to the app,跳過註冊

https://i1.wp.com/ithelp.ithome.com.tw/upload/images/20190922/20117701raxbocHUwh.png?w=640&ssl=1

輸入對應的資料

首先先輸入 API URL

https://api.line.me/v2/bot/message/push
https://i1.wp.com/ithelp.ithome.com.tw/upload/images/20190922/20117701ulDOEQCCHE.png?w=640&ssl=1

點選 Authorization 選擇 Bearer Token,並且填入 Channel access token

點選 Body 點選 raw,並且選擇 JSON

https://i2.wp.com/ithelp.ithome.com.tw/upload/images/20190922/20117701KNTiOGbnkQ.png?w=640&ssl=1
{
    "to": "U8955b5b423b1d6be9a9a6e902b0fcccc",
    "messages":[
        {
            "type":"text",
            "text":"it 邦幫忙鐵人賽"
        }
    ]
}

按下 Send

傳送完成

出現拉 ~ 今天的目標要讓我們的 Bot 主動傳訊息給我們成功了 😄!!

https://i0.wp.com/ithelp.ithome.com.tw/upload/images/20190922/20117701rJwNaQTLKS.jpg?w=640&ssl=1

結語

現在比較少開發者使用 Push API 來發送訊息了,因為這個部分可免費發送的數量不多,所以基本上都用 reply API 來做,除非一些比較特別的情境,像是這則訊息是不可以 lose 的,就可能需要使用 Push API,因為 Reply token 其實是會過期的 XD ~
詳細情況在後面章節可能會談到,這邊就先點到為止囉 ~

參考資料

  • https://developers.line.biz/en/reference/messaging-api/#send-push-message