本文旨在補充《超圖解物聯網IoT實作入門》第三章「Node.js入門」。
LINE提供的Messaging API(訊息應用程式介面)允許開發人員建立可接收並回覆訊息給好友的應用程式,一般稱為「Line Bot聊天機器人」。聊天機器人程式的處理架構如下,LINE公司的訊息伺服器(Messaging Server)負責接收與回應用戶端的訊息,並且管理LINE應用程式的權限。當LINE伺服器收到用戶端的訊息時,它會把訊息轉送給我們開發的「聊天」機器人程式,而此程式碼存放在我們自己的網站伺服器。
我們的網站程式會把回覆給用戶的訊息傳給LINE伺服器,由它轉發給用戶。
開發LINE聊天機器人程式的步驟
開發者的網站伺服器必須採用加密的HTTPS協定。用哪一種語言開發LINE應用程式,由你的網站伺服器支援的後端環境來決定。LINE官方的Github網站,有提供Node.js, Python, PHP, Java,…等語言的SDK(Software Development Kit,軟體開發工具套件)。
本系列文章採用Node.js,並將應用程式碼寄存在具備HTTPS協定,且有提供免費帳號的Heroku雲端應用程式平台。開發LINE應用程式的大致步驟:
- 在LINE網站把自己的LINE帳號註冊成開發人員。
- 在LINE開發者網站新建一個供應商(Provider),相當於設立品牌名稱。
- 替品牌建立一個頻道(Channel),一個頻道對應一個LINE應用程式(機器人),這個步驟就是設定LINE機器人的名稱和基本資料;一個供應商旗下可擁有多個頻道。
- 撰寫LINE應用程式並上傳到自己的網站伺服器。
- 將LINE機器人加入好友並測試
註冊成為LINE開發者並建立頻道
進入LINE開發者網頁,按下首頁右邊的Start using Messaging API(開始使用訊息API)。
如果你尚未登入,此網頁將要求你輸入LINE的電子郵件帳號與密碼。登入之後,會進入下圖的STEP 1(步驟一)選擇供應商(Provider)畫面。
此畫面上的下拉式選單,可選擇之前建立過的供應商名稱(若有的話)。按下+鈕,可新增供應商。
供應商名稱最多100個字,輸入完畢後,按下“Add(新增)”鈕,並選擇它,再按“Next page”進入下一頁,準備填寫應用程式(頻道)的名稱和說明等資料。
應用程式的圖檔最大不能超過3MB,應用程式名稱在20個字以內,說明則不超過500字。方案(Plan)請選擇Developer Trial(開發者試用),接著選擇此應用程式的分類(Category)和子分類(Subcategory)。
「開發者試用」和「免費(Free)」方案的主要差異是免費方案只能回覆訊息(REPLY),無法主動發送(PUSH)訊息;「開發者試用」方案的應用程式有50個好友的限制。
附帶說明,上面那一張超萌的貓狗合照,是日本野生動物攝影師岩合光昭(Mitsuaki Iwago)的作品。
輸入你的e-mail之後,按下Confirm(確認),它會要求你閱讀並勾選同意LINE以及Messaging API的使用條款。
按下Create(建立)鈕之後,網頁會切換到Provider(供應商)頁面,列舉旗下的所有頻道。新增的頻道底下有註記“Configuration not yet complete(尚未設置完成)”。
附帶說明,日後若要進入這個供應商網頁,管理或編輯頻道,可直接按下網頁右上角的人物圖示:
按下新建頻道下方的「右箭頭」鈕,可觀看此頻道的各項參數設定值。下一篇的Node.js程式將會用到其中的Channel ID(頻道識別碼)、Channel secret(頻道密鑰)及尚未設定的Channel access token(頻道存取代碼)。
未完…待續。
老师你好,我想问下当我输入您在《完美图解Arduino互动入门设计》中执行 远程监控的温湿度值的实验时,Arduino程序出现大量错误提示,能否解答一下。
错误提示如下
Arduino:1.8.5 (Windows 7), 开发板:”Arduino/Genuino Uno”
In file included from D:\鎴戠殑IOT\CD-ROM\绀轰緥鏂囦欢\ch2\Arduino\diy2_2\diy2_2.ino:6:0:
请参阅这一篇回应和这一篇回应里的下载文件,谢谢!
thanks,
jeffrey
谢谢老师,能够正常的运行了 万分感谢!
不客气~
thanks,
jeffrey
老師很精闢的解說,因要辦50人之在職訓練,想請問是否接受外聘講師業務…
我已回覆訊息到妳的郵箱,謝謝!
thanks,
jeffrey
您好,我們公司在尋找有關這樣技術的服務商,能有機會借助您的開發經驗幫我們做軟體嗎?
葉兄:
拍謝,我目前有其他工作,謝謝您的賞識~
thanks,
jeffrey
您好,我們公司也在尋找有關這樣技術的服務商,能有機會借助您的開發經驗幫我們做軟體嗎? 我是用 VB.net
拍謝,我沒有VB.net的開發經驗。
thanks,
jeffrey
老師您好~在Google搜尋到您的文章,因為最近我司要開發利用Line機器人,來發送指令給實體的設備裝置作動,不知道老師是否有相關的開發經驗??如果有我們想找老師合作請問該怎麼聯繫??
您好:
《超圖解Python程式設計入門》這本書的附錄B主題就是「LINE Bot物聯網:控制家電開關」,提供您參考。
thanks,
jeffrey
老師您好想請您幫我開發一些套件可以嗎
拍謝,我手邊有其他工作正在進行。
thanks,
jeffrey