前情提要:
在上一篇裡我們已經把開發 Line Bot 機器人 所需要的帳號都申請好了~(灑花~
那我們會在這一篇裡面介紹說明一些 Line Bot 事件的寫法:
- Callback URL
- Web Hook
- Reply Message
- Push Message
- Profile
同系列文章:
因為我發現wordpress好像步行列出同系列的文章
所以這邊幫大家把這系列的都列出來了,這樣大家比較好找~
- 【Python】 Line Bot 開發 -1 申請開發帳號!
- 【Python】 Line Bot 開發 -2 程式實戰!
- 【Python】 Line Bot 開發 -3 Flask 與 Line Bot 的異國戀情!
- 【Python】 Line Bot 開發 -4 機器人的 Sweet Home (架設伺服器)!
Callback URL:
這部分比較麻煩,因為這邊你需要提供 Line Bot 回傳的網址,換言之就是需要一個簡易的 Server 處理Line Server 傳來的資訊
而且
這個 URL 一定只能支持 HTTPS
這個 URL 一定只能支持 HTTPS
這個 URL 一定只能支持 HTTPS
因為超級重要所以我要說三次^^
Line 不只需要 HTTPS ,如果憑證有問題(例如只是私人憑證或是過期的)的話都是不接受的!!
所以這部分超級重要。
所以我推薦如果是新手要練習的話可以直接使用一些免費的server,他們都有提供Https的服務,也可以省去很多伺服器設定上的麻煩喔~
Web Hook:
每當發生一些事件的時候,就會出發這個 Web Hook, 而你的程式也會收到 那個 event 的 JSON 資料。
而那JSON是非常重要的,裡面包含了一大堆在處利訊息上非常有用的資訊喔!
例如:
userId 可以記錄是誰使用了你的小機器人
groupId 可以了解你的機器人被加入了哪一個群組
replyToken 可以不用管ID直接回覆給呼叫的人
message 可以看到對方船的指令
諸如此類的
還有非常多可以使用的資訊都非常好用喔!!
至於其他JSON裡面的資訊我就不一一介紹了
就讓大家去官網的文件裡面探險吧!
都可以在旁邊的 “events" 底下看到喔!
# 如果你要做防護機制的話也可以使用 join event 和 follow event!
Reply Message:
Reply Message 剛剛已經有先提到了
就是使用 replyToken 這個 key 裡面的資訊來回復訊息
這樣在簡單的答覆中就不用使用到 userId 了!
很簡單的就一行就可以了
line_bot_api.reply_message(event.reply_token,TextSendMessage(text=msg))
很簡單對吧~
Push Message:
這個功能的話我就遇過了很多坑!!
因為不是每一個bot都有開放這個主動推訊息出去的功能喔!!!
所以一定要照著我上一篇交的步驟才會有這功能!
上一個看到的是 Reply ,他是述於被動狀態的送出訊息。
而這個呢,他是主動的送出訊息,你可以在伺服器中做一個條件判斷,當發繩甚麼事的時候就主動通知使用者!
我認歲這是非常好用的!!
而寫法也是非常的簡單喔~
line_bot_api.push_message( id, TextSendMessage(text=msg))
Profile:
最後一個是當你要更了解使用者得訊息時才會需要用到的喔!
前面一直提到的 userId 和 groupId 都不是你們在互相加好友時用的ID喔!!
那個是給人類看的
這邊一直提到的是伺服器那邊存的ID
但是如果你想要記錄下來使用者的名稱
你就可以使用
profile = line_bot_api.get_profile('')
print(profile.display_name)
print(profile.user_id)
來得知呼叫你的使用者的資料和名稱喔~!
那事實上到這邊目前為止介紹的方法就已經可以讓你寫出一個很多功能的 Line Bot 了呢~
至於下一篇呢 我會介紹幾個我使用過的伺服器
有免費的也有要付費的
每個伺服器都有他們各自的部屬方法和需要特定的部屬文件喔!
那我們就下一篇再見吧~掰掰~