本程式只需處理並回應文字訊息。假設用戶輸入「空氣」文字,這個Line聊天機器人將查詢空氣品質並回應(reply)給使用者,這部份的程式碼如下:
LINE Bot聊天機器人程式開發教學(五):使用Promise風格的request-promise讀取資料開放平臺的天氣品質JSON資料
request模組使用「回呼函式」執行非同步任務。「建立Node.js版的Echo Bot」這一篇文章使用的Line程式庫則採用稱為Promise(直譯為「承諾」)的非同步程式設計風格。這兩種非同步程式語法的差別在於,一個是把回呼函式嵌套在處理函式裡面,另一個則是用“.then”指令,串連回應函式(註: “then”有「然後…」之意):
LINE Bot聊天機器人程式開發教學(四):佈署與測試Echo Bot
底下是本程式專案的檔案結構,其中的Procfile是Heroku平台環境的應用程式(也就是“dyno”)設定檔,其中只包含一行敘述:“web: node index.js”代表指定網站伺服器以node服務執行index.js。本範例檔包含ejs樣板,但下一篇的程式才會用到。
LINE Bot聊天機器人程式開發教學(三):建立Node.js版的Echo Bot
在LINE頻道的設定畫面中,我們必須替LINE頻道設定接收LINE訊息的自訂程式(也就是LINE 機器人程式)網址,這個網址稱為Webhook(註:hook代表「掛勾」)。假設筆者把LINE訊息處理程式放在swf.com.tw網站的linewebhook路徑,那麼,每當有人發送訊息給我的LINE機器人,LINE公司的伺服器將以底下的HTTP POST請求格式,將訊息發送給我的網站伺服器:
LINE Bot聊天機器人程式開發教學(二):註冊與設定Heroku平台應用程式
撰寫Node.js程式之前,先替網站程式找個安頓之處,本文採用Heroku雲端應用程式平台。「雲端應用程式平台」類似出租套房,地主蓋了樓房,將它分隔成不同尺寸的套房,每個套房都有獨立的水電和網路等基礎設施,套房裡面住著不同的房客。
LINE Bot聊天機器人程式開發教學(一):建立頻道
聊天機器人程式的處理架構如下,LINE公司的訊息伺服器(Messaging Server)負責接收與回應用戶端的訊息,並且管理LINE應用程式的權限。當LINE伺服器收到用戶端的訊息時,它會把訊息轉送給我們開發的「聊天」機器人程式,而此程式碼存放在我們自己的網站伺服器。
MQTT教學(七):使用Node.js訂閱MQTT訊息
MQTT教學(五):「保留」發布訊息以及QoS品質設定
QoS代表發布者與代理人,或者代理人與訂閱者之間的傳輸品質。MQTT定義了0, 1和2三個層級的品質設定(實際支援情況依伺服器軟體而定,Mosquitto伺服器全都支援)。
MQTT教學(四):使用MQTTLens訂閱與發布MQTT訊息
本文將使用Sandro先生開發的MQTTLens(直譯為「透鏡」),連接Mosquitto伺服器,練習MQTT訊息的發布與訂閱流程,本文也將說明在主題名稱中,搭配萬用字元訂閱多筆主題的方式。
MQTT教學(二):安裝MQTT伺服器Mosquitto,Windows系統篇
本文將說明頗受歡迎的開放原始碼MQTT伺服器Mosquitto,在Windows系統上的安裝流程,以及替MQTT伺服器開啟Windows防火牆埠號的步驟。Mosquitto是非營利軟體供應商聯盟Eclipse基金會的開源物聯網專案計畫(iot.eclipse.org)中的一環,支援MQTT 3.1和3.1.1版通訊協定,可在Windows, macOS和Linux等作業系統上安裝執行。
MQTT教學(一):認識MQTT
MQTT是由IBM的Andy Stanford-Clark博士和Arcom(已更名為Eurotech)的Arlen Nipper博士於1999年發明的通訊協定。他們當時是為了在狹窄的網路頻寬和微小電力損耗的需求前提之下,提供石油管線感測器和人造衛星之間一個輕量、可靠的二進制通訊協定。2011年11月,IBM和Eurotech將MQTT協定捐贈給負責管理開放原始碼專案的Eclipse基金會,並且加入Eclipse M2M Industry工作組織。2014年十月,MQTT正式變成一個開放的OASIS國際標準(Organization Advancement Structured Information Standards,資訊標準架構促進會,一個制定電子商務、網路服務和電子出版的非營利機構)。
從ESP8266連結Node.js並傳送JSON數據
本單元旨在補充《超圖解物聯網IoT實作入門》第12章「讓NodeMCU扮演網路前端上傳資料(IFTTT)」單元。IFTTT網站在2016年底做了小改版,原本的Recipe(方案)改名成Applet(小程式)、channel(管道)改成service(服務)。IFTTT的Maker服務看似不受影響,原有的觸發(trigger)連結仍可運作,只是之前設定的Gmail信箱沒有送出通知郵件,而且我也無法進入如12-41頁所示的參數設定畫面。