發表於 聊天機器人 BOTPython教學

【Python】 Line Bot 開發 -2 程式實戰!

前情提要:

在上一篇裡我們已經把開發 Line Bot 機器人 所需要的帳號都申請好了~(灑花~

那我們會在這一篇裡面介紹說明一些 Line Bot 事件的寫法:

  • Callback URL
  • Web Hook
  • Reply Message
  • Push Message
  • Profile

同系列文章:

因為我發現wordpress好像步行列出同系列的文章
所以這邊幫大家把這系列的都列出來了,這樣大家比較好找~

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 了呢~

至於下一篇呢 我會介紹幾個我使用過的伺服器

有免費的也有要付費的

每個伺服器都有他們各自的部屬方法和需要特定的部屬文件喔!

那我們就下一篇再見吧~掰掰~

廣告

作者:

一位 熱愛資工領域、喜歡好笑事物、偶爾打打網球 的學生 ! For A Better Me!

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.