iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Software Development

從零開始構建能理解語義的 Linebot 架構系列 第 6

LINE Bot 基本觀念: 官方帳號的建立流程 / 事件簡介

  • 分享至 

  • xImage
  •  

概述

  • 官方帳號的建立流程
    • 1.LINE Official Account Manager

      • 1.建立帳號
      • 2.啟用Messaging API
      • 3.設定Webhook
    • 2.LINE Developer Console

      • 取得Access Token
  • Server 端可以從 Webhook 的 events[i] (第i筆event) 取得:
    • type: 判斷訊息類型 (string)
    • message: 訊息內容 (object)

建立官方帳號 Messaging API Channel

今年九月後Messaging API Channel的申請流程有經過變更: 以往可以直接在 LINE Developers Console 建立 Messaging API Channel,現在則改為需要透過 LINE Official Account Manager 來啟用

https://ithelp.ithome.com.tw/upload/images/20240920/20105227bNK9nNyLrz.png
圖: LINE Official Account Manager

登入 LINE Developers 後,進入 LINE Official Account Manager。點選左側的 建立,依照流程填寫基本資料後,即可啟用一個新的官方帳號。

https://ithelp.ithome.com.tw/upload/images/20240920/20105227VnTTPUWSPf.png
圖: 建立帳號

https://ithelp.ithome.com.tw/upload/images/20240920/20105227VNHhiCYFkG.png
圖: 填寫基本資料

填寫完成後,回到帳號一覽畫面(點選左上角的LINE Official Account Manager 圖示),選擇要啟用的帳號。點選 聊天 -> 左側的設定 -> Messaging API,來啟用Messaging API。

https://ithelp.ithome.com.tw/upload/images/20240920/20105227aJcQtWQBZo.png
圖:點選要啟用的帳號

https://ithelp.ithome.com.tw/upload/images/20240920/20105227ODQCIJETxQ.png
圖: 啟用Messaging API

設定Webhook

接下來,設定 Webhook。首先,要準備好Webhook的目的端URL,這個URL將會收到來自LINE Platform的資訊。
新版流程中,一旦設定完成並按下儲存後,LINE就會馬上對這個URL送出測試API request,如果目的端沒有回應Succces,就不會更新Webhook URL。

https://ithelp.ithome.com.tw/upload/images/20240920/20105227u6Wd9qpUBO.png
圖: 設定Webhook的目的端URL

由於到目前為止,我們還沒準備好接收訊息的API,你可以暫時輸入一個安全的測試網址 (例如https://google.com),或跳過這個步驟。
設定好後,就可以再回到選聊天-> 啟用Webhook。從此,使用者發送給官方帳號的訊息,將會被放入Webhook的 Request Body裡。
需注意,Webhook的Http Method固定為POST。

https://ithelp.ithome.com.tw/upload/images/20240920/20105227Bl8aJ5PXDb.png
圖:啟用Webhook

Channel Access Token

官方帳號的所有溝通都是透過Channel,而每次傳送資料時,都必須攜帶Channel Access Token,來驗證訊息來源的合法性。
LINE提供了4種Access Token,主要差別在於Expired Time(過期時間)

https://ithelp.ithome.com.tw/upload/images/20240920/20105227I8Z81ZbaRi.png
圖: Access Token類型

為了開發方便,我們通常會選擇不會過期的Long-lived Token,這種Token只能在LINE Developer頁面才能取得,點選LINE Developer Console -> 選擇帳號 -> 從Messaging API取得Token

https://ithelp.ithome.com.tw/upload/images/20240920/20105227lPBlrbBuS1.png
圖:點選右上角的LINE Developer Console (注意: 不是LINE Official Account Manager)

https://ithelp.ithome.com.tw/upload/images/20240920/20105227Pr8liYDG8t.png
圖: 選擇帳號

https://ithelp.ithome.com.tw/upload/images/20240920/20105227IrkepAk0x7.png
圖: 從Messaging API取得Token

請注意: 不要將Channel Access Token外流,也不要也不要將Token推送到Git上。雖然大家都習慣避免在程式中硬寫密碼,但Token通常會擺在外部設定檔內,稍不注意很容易不小心上傳到公開的Git。

Webhook 與 事件(Event)

一個Webhook的request body如下:

https://ithelp.ithome.com.tw/upload/images/20240920/20105227hLIjg7Qgi6.png
圖: Webhook的request body

在Webhook中,所有和使用者或LINE官方帳號的互動的行為,都是一個事件,這些事件會以陣列的形式存放在 events 裡。
每個事件包含不同的類型,例如訊息事件(Message Event)表示使用者發送輸入訊息,加入好友事件(Follow event)則表示使用者把這個帳號加入好友。

事件的類型可參考Webhook 事件類型

Messaging (訊息傳送)類型

LINE Bot 可以傳送的訊息類型有多種,具體內容可參考訊息類型。本專案中,主要使用的是 Reply Message,以使用者的訊息作為後續邏輯處理的驅動。

訊息計費

每個月 LINE 提供免費訊息傳送的額度,詳細的計費方案可以參考LINE官方帳號方案價格調整

以上是LINE Bot的相關基礎知識。原本這個章節沒打算介紹這麼多操作步驟,但實際使用新版流程後,發現還是有些細節需要額外說明,特別是 LINE Official Account Manager 和 LINE Developers Console 之間的切換,流程比預期的稍微複雜了一些,因此多截了一些圖來輔助說明。

現在,對於Webhook的結構和運作流程有了一定的掌握,接下來我們就可以開始準備Server端以及AWS的環境架設,進一步發展 LineBot 的功能了。

Citation
https://developers.line.biz/en/docs/basics/channel-access-token/#channel-access-token-types
https://developers.line.biz/en/news/2024/09/04/no-longer-possible-to-create-messaging-api-channels-from-console/


上一篇
LINE Bot 基本觀念: 運作原理
下一篇
使用 AWS Lambda 開發 Serverless Event 接收器: 串接LINE Bot Webhook
系列文
從零開始構建能理解語義的 Linebot 架構30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言