LINE Chatbot 開發手札

LINE, Chatbot, LINE Message API, webhook, Azure Bot Service, LUIS

        //# 送出Flex Message
        //                String jsonMsg = @"[{
        //""type"": ""flex"",
        //""altText"": ""This is a Flex Message"",
        //""contents"": {
        //    ""type"": ""bubble"",
        //    ""hero"": {
        //        ""type"": ""image"",
        //        ""url"": ""https://scdn.line-apps.com/n/channel_devcenter/img/fx/01_1_cafe.png"",
        //        ""size"": ""full"",
        //        ""aspectRatio"": ""2:1""
        //    },
        //    ""body"": {
        //        ""type"": ""box"",
        //        ""layout"": ""horizontal"",
        //        ""contents"": [
        //            {
        //            ""type"": ""text"",
        //            ""text"": ""Hello, World!"",
        //            ""wrap"": true
        //            }
        //        ]
        //    }
        //}
        //}]";

引言

用來進行LINE Chatbot 開發指引,預計實作相關技術有: LINE Message API + Azure Bot Service + Azure LUIS + Azure SQL

名詞解釋

因為大多Chatbot相關名詞,整理一下以減少混亂。

  • Chatbot, 為[應用面名詞],聊天室機器人。

  • webhook, 為[應用面名詞],讓一個網站能訂閱另一個網站的方法。

  • LINE Message API, 為[LINE技術名詞]。實作LINE Chatbot的(聊天問答)主模組,可以用介面設定簡單的回應,進階的問答要另外實作webwook。

  • Azuer Bot Servie, 為[Azuer技術名詞],為webhook的實作之一。 可用來實作很多社交應用的Chatbot,包含LINE,Facebook,Skype,Slack等等其它。

  • Azure LUIS, 為[Azuer技術名詞],Language Understanding Intelligent Service,語意理解認知服務, 用簡易的關鍵字(Entities)、使用者意圖(Intents)設定,經由機器學習訓練出精確度更高的語意判斷。 相同的產品有 Google Dialogflow, Microsoft LUIS, IBM Watson Assistant

第一個LINE bot (留參)

了解LINE bot(webhook)的組織為開發程序。

下面兩篇文章說明如何建立 Echo Bot,請依文章實作。(應該還會參考其它文章輔助不足,請自行拜訪google大神)

成果展示

若設定成功,在Azure Bot 服務可以看到設定好的 Chatbot。

若設定成功,一套Azure的 Web App Bot 會產生三項資源。

triangle-exclamation

第一個LINE bot - 重置

如下視頻:用LineBotSDK開發 webhook

【Live講堂】Line Bot聊天機器人極速開發
用 Azure 快速部署與開發 LINE bot

影片有點舊還是有參考價值。很懶啊,先留下關鍵字: LINE Message API, Webhook, LIFF, Azure LUIS, Azure App Service, ngrokarrow-up-right

webhook 範本程式碼留存

第二個LINE bot

加入Azuer SQL。 記錄LINE可以抓到的全部行為。

加入Azuer SQL。

已加入Azure SQL,基本上用去與 SQL Server 差異不大。

記錄LINE可以抓到的全部行為

LINE webhook 可以抓到的訊息只有使用者發出的聊天訊息。 其他非聊天的路徑,比如 PUSH_MESSAGE、REPLY_MESSAGE 是抓不到的,要自己想辦法紀。

第三個LINE bot

改用 LineBotSDK開發 webhook。原先使用的Azure Bot Service 只做出『通用型』的聊天機器人做不出專業型的機器人故不再使用。

LineBotSDK 是專為 LINE 設計的,可惜是野人版已落後一年半未更新。還是可以用用看。LINE 官方出的 Message API (webhook) SDK 沒有 C# 版本,很囧。

試 著由Chatbot回應訊息。應該可以搭配LINE Message API的圖文訊息設定等等。

已成功試送出圖文訊息。以下程式碼留參用:

第四個LINE bot

再加入LUIS強化語意判斷。

尚未打算做進階的聊天機器人,先放著。

進一步參考

(先這樣)

Last updated