2021年1月14日 星期四

Python 學習筆記 : LINE Bot 開發 (一) 註冊 LINE Messaging API 服務

我想測試 LINE Bot 已經很久了, 包括去年騰出一些時間學習 Git 與 GitHub, 申請 Heroku 帳號等也是為此在鋪路, 好事多磨到今天終於動手了, 主要就是申請 LINE Messaging API (訊息應用程式介面) 的供應商 (provider) 與頻道, 過程其實還蠻簡單的. 

LINE 是台灣人最常用的即時通訊軟體, 幾乎每個人手機都有安裝, 使用 LINE 聊天機器人相當於是利用 LINE 這個 App 來執行雲端應用服務程式, 執行結果傳回給 LINE 呈現, 換言之, 我們可以不用自己設計 App, 直接利用 LINE 當人機介面, 因此取代專屬 App 成為很多公司行銷與客服的利器. 

目前市面上用 Python 開發 LINE 聊天機器人的書有四本 :
使用 LINE Messaging API 服務須先申請 LINE Business ID :


1. 申請 LINE Business ID (開發者帳號) :

首先連線到 LINE 開發者網站 :





然後點右上方 Log In 鈕登入自己的 LINE 帳戶 (須手機 LINE App 認證) :




我使用 LINE 照號登入 (Email + 密碼) : 




按登入會出現一個隨機認證碼 : 



打開手機的 LINE App 會出現用戶確認視窗, 輸入剛剛的認證碼按 "用戶確認" 鈕 : 




登入成功後回到電腦網頁就會進入開發者控制台 (console) 頁面, 請輸入開發者名字與 email, 勾選 "I have read and agreed to the LINE developer aggrement" 後, 再按 "Create my account" 鈕即可建立開發者帳號 (即 Business ID) :




2. 建立提供者 (Provider) 與頻道 (Channels) :

建立開發者帳號後會進入 Provider 頁面 :




接下來按 "Create a provider" 鈕建立一個提供者, 在 Provider name 欄填入訊息服務提供者名字 (100 個字元引內, 不可使用特殊字元) 後按 Create 鈕 :






接下來要建立通道 (Channel, 用來介接到處理訊息的應用程式), 將 Provider 網頁向下拉, 點選 "Create a messaging API channel", 前面兩項 (Channel Type 與 Provider) 已經固定不用填 : 




Channel icon 欄用來指定聊天機器的的大頭貼, 按 Register 可以從檔案總管挑一張不大於 3MB 的圖檔 (JPG/PNG/GIF/BMP) 上傳 : 




Channel name 欄是聊天機器人的名字 (最多 20 個字元, 要七天後才能改) :




Channel description 欄填寫通道用途說明 :




Category 與 Subcategory 欄位分別是分類與子分類, 必須從下拉式選單中挑選一個適合的分類 :




Email address 欄會自動填好之前註冊時用的 email (可以改), 收 LINE 官方通知之用 :




Privacy policy URL 與 Terms of use 兩欄用來指定隱私權政策與使用聲明文件之 URL, 如果有準備這兩份文件, 可填入其網址 (例如放在官方網站或 GitHub 上), 如果沒有就跳過不填也可以 : 




最後勾選底下的兩個 LINE 使用同意書, 按 Create 鈕與同意 LINE 資訊使用方式即完成訊息頻道之建立 :





頻道註冊結果如下 : 





重點是最底下的兩個資訊 : Channel secret (通道密碼) 與 Assertion signing keys (存取通行證), 通道密碼在聊天機器人程式中建立用來處理訊息的 WebhookHandler 物件時需要用到, 在上面建立通道時就自動產生了, 但也可以按右邊的 issue 鈕重新建立 :




而 Assertion signing keys 則是用來產生公私兩對密鑰與存取通行證, 這在建立用來送收訊息的 LineBotApi 時會用到, 但這必須自行按右方的 issue 鈕來產生私鑰 :





按 OK 鈕即產生私鑰 (是一個 json 檔案), 按 Download 下載 : 





注意, LINE 只會保留一份公鑰而不會保留此私鑰, 需自行下載保存, 私鑰 json 檔下載後應放在安全的地方 (例如保護的資料夾或隨身碟), 不要放在公眾可存取的網路上 (例如 GitHub). 建立Assertion Signing key 後頁面會顯示此私鑰的 ID :  




注意, 與上面參考書中介紹的不同之處在通道 token 的申請方式, 如果是委託開發, 以前 Channel token 2.0 必須將 Channel secret 交給聊天機器人開發者去產生 Channel token, 但這樣會有資安顧慮; 所以 LINE 在 2020-04-06 發布了 Channel token 2.1 改變了做法, 就是上面的 Assertion signing key 產生公鑰與私鑰, 只要將公鑰交給開發者即可, 參考 : 


OK, 這樣就完成 LINE Messaging API 的註冊了. 

參考 :



2024-01-14 補充 :

我在 2023 年 1 月買了下面這本也不錯 :


沒有留言 :