透過 Microsoft Bot Framework 來開發 BOT ,透過它的 Bot Connector service ,
可以讓我們寫一套程式,就可以處理不同的 IM Channel(例如 skype, slack ...)。
但是台灣常用的 LINE 卻不在它 Support 的 Channel 之中。
目前只能透過 Direct Line 的方式去接 LINE BOT。
所以 Kenichiro Nakamura 有幫我們封裝 LineClient (line-bot-sdk-csharp) 來處理跟 LINE BOT 溝通的部份。
以下我們一步步來介紹如何使用它,
1.啟用 Direct Line
從 MyBots 那,啟用 Direct Line ,勾選 3.0 ,並將 Secret Key Copy 下來(程式會用到它)。
2.申請 LINE BOT
關於如何申請 LINE BOT 請參考「關於Linebot(2) - 新版Line@ Messaging API使用心得 (Line Bot v2)」說明。
在 LINE@MANAGER 建立帳號,並設定好 BOT 後(帳號設定 -> Bot設定),可以點「開啟 LINE Developers」,如下圖,
到了 LINE Developers 後,要記下來的就是 Channel Secret 及 Channel Access Token (程式會用到它)。
另外就是要設定 Webhook URL ,因為是在原先的 BOT 專案中新增一個 LineMessagesController ,所以 URL 類似(https://你的BOTURL/api/LineMessages) 。
3.加入 LineMessagesController
3.1. 從 Nuget 安裝 Microsoft.Bot.Connector.DirectLine 套件,如下,
3.2. 從 Nuget 安裝 LineMessagingAPI.Csharp 套件,如下,
3.3. 在 web.config 的 appSettings 區段中加入 Direct Line Secret 及 LINE 的 Channel Secret 及 Channel Access Token ,如下,
<appSettings>
<!-- 其他設定 .... -->
<add key="DirectLineSecret" value="Direct Line Secret Key" />
<!-- LINE Bot Info-->
<add key="LineChannelSecret" value="Line Channel Secret" />
<add key="LineChannelAccessToken" value="Line Channel Access Token" />
<!-- 其他設定 .... -->
</appSettings>
3.4. 在 Controllers 目錄,新增 LineMessagesController , 並貼上以下的 Code (或是從 LineWithBotFrameworkApplication Copy出來也可以)。
簡單的幾個步驟,然後在 LINE 中加入 BOT好友,您的 BOT 程式就可以在 LINE 上使用了哦! 如下,
註:
1. 目前 Direct Line 不 Support Proactive Message 哦!
2. LineMessagesController 中會將 HeroCard 轉成 LINE 的 Buttons template 哦!
3. LINE BOT 的 Buttons template 只能在 智慧手機上使用哦! 在電腦版的 LINE 無法使用哦!
4. 因為 Buttons template 中,subtitle, text, image, buttons , actions 都是必要的,所以要使用 HeroCard 請記得都要給哦!
參考資料
An Introduction to the Microsoft Bot Framework
關於Linebot(2) - 新版Line@ Messaging API使用心得 (Line Bot v2)
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^