透過「服務提供者」功能讓外部服務與 MediaTek Cloud Sandbox 連動 (上)
打造 LINE Bot 聊天機器人供使用者查詢停車場的即時剩餘車位
以物聯網概念將剩餘車位資訊送到 MCS 服務上
本篇我們要教大家如何透過外部服務與 MCS 做互動以達成客製化應用。想像你目前正經營一個停車場,某天你剛好去保養付款機台時,聽到一位常客抱怨無法在抵達前知道剩餘的車位,到現場時才能從顯示屏上得知停車位已滿的訊息,而必須繞路到附近另一間停車場或在現場苦等。
因此,你希望提供一個更便利的方式讓常客們可以更有效率的造訪你的停車場。你想要達成兩個目標: 第一是讓用戶可以透過手機查詢目前停車場的剩餘車位 。第二是當剩餘車位低於某個數字時,主動推播提醒該位常客。
考量到以下幾點:
- 若獨立開發一個停車場的 App 服務,用戶需做較多操作,除了增加行車危險性,且用戶額外安裝一個 App 的意願也不高
- 開發一個停車場 App 的開發時間及成本
- 目前絕大多數台灣人隨時隨地都在操作 LINE
你決定透過開發一個簡單的 LineBot 聊天機器人,讓常客可以透過將這個聊天機器人加入LINE 好友與你的停車場互動並達成上述兩個目標。
接下來的文章,我將針對如何透過 LINE Bot 設定、MCS及自動化程式平台,說明如何開發這個簡單的 LINE Bot 聊天機器人。
首先我們要開發一個簡單的物聯網裝置,連結停車場的車位管理設備,並讀取剩餘車位的資訊。當有用戶停車時,這個物聯網裝置會將更新後剩餘車位的數值送到 MCS 的雲端服務上,如下圖:
這裡要特別介紹一個概念:目前大部分的 MCS 的使用者都是透過裝置與MCS 服務做互動。但除了裝置外,MCS 也允許使用者開發的外部服務,透過在 MCS 上所申請的憑證和 MCS 互動 ,這組憑證即為 appId 和appSecret。下圖為 MCS 官網上針對以外部服務讀取資料點的說明。
由於我們後續必須透過外部服務讀取這個裝置的剩餘車位資訊,這組憑證對接下來的開發將非常關鍵,我們在下一篇將會針對這個部分做詳細說明。
申請一個 LINE Bot 機器人及 Automate.io簡介
接著,我們要去 LINE 申請一個 LINE Bot。
網路上已經有相當多關於如何申請 LINE Bot 的文章,在此容我就不就此部分多做說明。以下為在 LINE developers 後台內該 LINE Bot 的設定畫面,我們將這個 LINE Bot 取一個很酷的名字 : 互動式停車場-中山北路。
LINE Bot 所提供的 Messaging API 允許開發者建立可接收訊息並回覆給加入LINE Bot 的用戶,此 LINE Bot 的程式處理架構為: LINE公司的訊息伺服器(Messaging Server)負責接收及回應用戶端的訊息,並且管理 LINE 應用程式的權限。當 LINE 訊息伺服器收到用戶端的訊息時,它會把訊息轉送給我們所開發 Linebot 程式的網站,我們的網站程式會把我們設定要回覆給用戶的訊息傳回給 LINE 伺服器,最後再由 LINE 伺服器將訊息回覆給用戶。
在 LINE Bot 的設定頁面,請檢查以下設定:
- Issue 一個 Channel access token (後面 LINE Bot 回覆訊息時會需要用到此變數)
- Use webhooks 欄位修改為 Enabled
- 將下方的自動回覆( Auto-reply messages)功能關閉
- 輸入webhook 的URL
以上 #1~3 設定完後,我們只差 #4 尚未完成- 輸入 Webhook URL (上圖黃框)。LINE Server 會透過這個 Webhook 將訊息送到我們的開發 LINE Bot 程式的網站 ,而 LINE 官方範例使用 Heroku 這個服務做為開發 LINE Bot 程式網站的後端平台,並接收 LINE Server 的訊息 (若有幸趣使用此後端服務開發LINE Bot 的話可直接搜尋 Building a sample bot with Heroku)。但我們知道,時間就是金錢,在此我們直接使用一個非常好用的自動化程式平台- Automate.io (https://automate.io/),可以讓我們透過簡單的設定來取代寫程式開發這個 Linebot 程式。而我們待會也將透過 Automate.io 生成上圖中LINE Bot 設定頁面所需輸入的 Webhook URL 。
決定以 Automate.io 取代程式開發後,我們的 LINE Bot 聊天機器人服務架構就成為了下面這張圖
現在,我們有了整個 LINE Bot 的開發雛型。
下一篇我會說明如何透過 Automate.io 連通 MCS及 LINE server,並完成LINE Bot 的開發。