iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
3
Software Development

LINE bot 好好玩 30 天玩轉 LINE API系列 第 7

[30 天教你如何玩弄 Line bot API] 第 7 天:教你如何自動嘴!

本文同步刊載於 Clarence 部落格:[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://ithelp.ithome.com.tw/upload/images/20190922/20117701eIZVvdX0UB.png

打開 Postman

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

https://ithelp.ithome.com.tw/upload/images/20190922/20117701raxbocHUwh.png

輸入對應的資料

首先先輸入 API URL

https://api.line.me/v2/bot/message/push

點選 Authorization 選擇 Bearer Token,並且填入 Channel access token
https://ithelp.ithome.com.tw/upload/images/20190922/20117701ulDOEQCCHE.png

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

https://ithelp.ithome.com.tw/upload/images/20190922/20117701KNTiOGbnkQ.png

{
    "to": "U8955b5b423b1d6be9a9a6e902b0fcccc",
    "messages":[
        {
            "type":"text",
            "text":"it 邦幫忙鐵人賽"
        }
    ]
}

按下 Send

傳送完成

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

https://ithelp.ithome.com.tw/upload/images/20190922/20117701rJwNaQTLKS.jpg

結語

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

參考資料

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


工商時間

團隊系列文

CSScoke - 金魚都能懂的這個網頁畫面怎麼切 - 金魚都能懂了你還怕學不會嗎
King Tzeng - IoT沒那麼難!新手用JavaScript入門做自己的玩具~
Hina Hina - 陣列大亂鬥
阿斬 - Python 程式交易 30 天新手入門
塔塔默 - 用Python開發的網頁不能放到Github上?Lektor說可以!!
Vita Ora - 好 Js 不學嗎 !? JavaScript 入門中的入門。


上一篇
[30 天教你如何玩弄 Line bot API] 第 6 天:教你怎麼嘴最舒服!- Flex Message
下一篇
[30 天教你如何玩弄 Line bot API] 第 8 天:各種被嘴的方法
系列文
LINE bot 好好玩 30 天玩轉 LINE API30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
jedivuly
iT邦新手 5 級 ‧ 2021-04-09 14:01:37

版大您好 我是初學者 正在摸索

請問如果要一次發給多位用戶

"to": "U....",
這地方要怎麼新增多組的 USERID ?

我試了很多遍都失敗@@

Clarence iT邦新手 3 級 ‧ 2021-04-09 14:27:30 檢舉

這個沒有辦法一次發給多位使用者!一次只能發一位呦!

jedivuly iT邦新手 5 級 ‧ 2021-04-09 18:31:04 檢舉

了解感謝
想說可以取代 群發訊息的功能 XD

Clarence iT邦新手 3 級 ‧ 2021-04-12 14:22:23 檢舉

這部分沒有辦法呦!如果要需要自己實作

我要留言

立即登入留言