如何建立可Echo的基本LINE Bot

Overview

本Lab介紹如何透過 C# 以程式碼,以 .net core 開發框架,搭配 LineBotSDK ,快速建立一個可以回應用戶訊息(Echo)的LINE Bot。

Prerequisites

  1. 請先建立好LINE Bot帳號,並取得Channel Access Token與UserId 參考這裡arrow-up-right

  2. 下載安裝 .net core sdk 3.1 以上版本 herearrow-up-right

  3. 安裝 Visual Studio Code 開發工具 herearrow-up-right

  4. 建立 .net core WebAPI 專案,在專案中引用 nuget 上的 LineBotSDK 套件。

  5. 安裝好 Ngrok 便於在開發環境測試 herearrow-up-right

Steps

建立 .net core WebAPI專案

在命令列模式建立資料夾,接著透過 dotnet new 指令建立專案

PS D:\> md linetest
PS D:\> cd linetest
PS D:\linetest> dotnet new webapi

系統會出現類似底下畫面...

接著執行底下指令, 安裝 LineBotSDK 套件...

系統會出現類似底下畫面...

安裝完成後我們建置(Build)一下,看結果如何:

如果可以順利建置,你應該會收到類似上面這樣的訊息。

透過底下指令,開啟 VS Code進入開發環境

請在命令列輸入 code (空格) .

完成後會看到類似底下畫面,請點選Startup.cs,將39行的程式碼註銷: enter image description here

安裝範本 (此動作只需做一次)

若你第一次執行,請在terminal執行底下指令安裝 LINE WebHook範本:

完成後,當你執行 dotnet new 會看到列出的清單中有 linewebhook enter image description here

當你確定有該範本後,可在 Terminal (或VS Code中的終端機環境亦可)執行 dotnet new linewebhook 指令,你應當會看到類似底下訊息:

完成後,在 VS Code的專案清單的Controller資料夾中(除了原本的WeatherForecastController.cs是系統內建的之外),還會多出只少五支 *.cs 程式碼:

enter image description here

請先關注 LineWebHookController.cs 這支(如上圖)。

修改 Channel Access Token 與 AdminUserId

在 LineWebHookController.cs 這支程式碼中,找到 "Repleace_it_with_your_Channel_Access_Token",並置換成你的 channel access token,接著找到 "Repleace_it_with_your_Admin_User_ID",並置換成你的UserID。

完成後類似底下這樣: enter image description here

請留意最上面一行的

這就是你的WebHook endpoint位置。

執行WebHook

請確定所有修改的程式碼都有儲存後,在 terminal(VS Code亦可)環境中執行該程式:

執行後結果應當如下: enter image description here

上面這個畫面代表,你的WebHook已經在Localhost本機電腦上的5000與5001 port 被執行起來了,你可以嘗試用Chrome瀏覽器呼叫 http://localhost:5000/api/LineBotWebHook enter image description here

雖然看到上面的畫面,但結果是對的。

使用ngrok讓LINE Bot可以運行

請不要關閉應用程式的執行狀態。 請註冊 NGROK帳號 https://dashboard.ngrok.com/login 下載 NGROK: https://dashboard.ngrok.com/get-started/setup 接著,將下載好的ngrok.zip壓縮檔解開,會看到其中有ngrok.exe執行檔,請將其放置在你覺得方便的資料夾下,並進入該資料夾,並取得token, 並執行指令,類似

接著,執行下列指令:

執行結果如下: enter image description here 請注意上面的 https 位置,請將該位置複製,並加上先前的route --> api/LineBotWebHook,組出一個完整的endpoint :

設定LINE Bot後台

接著,進入 LINE Bot管理後台,將上面得到的 endpoint 位置,設定在Webhook settings中: enter image description here

完成後,可點選 Verify(請注意Use webhook必須勾選): enter image description here

若設定成功,應當會看到底下畫面: enter image description here

這表示已成功設定,一切完成。

測試LINE Bot

接著,請確定您先前已經將你的LINE Bot加為好友,若確定無誤,你可以跟LINE Bot對話。不管你說什麼,你的LINE Bot都會原封不動的Echo你:

enter image description here

因為我們在程式碼當中撰寫著:

就這樣,你的第一個LINE Bot就完成了...

備註

相關參考資料

電子書:https://www.pubu.com.tw/ebook/103305arrow-up-right 實體書:https://www.tenlong.com.tw/products/9789865022662arrow-up-right 線上課程:https://www.udemy.com/line-bot/arrow-up-right LineBotSDK:https://www.nuget.org/packages/LineBotSDKarrow-up-right

如果需要即時取得更多相關訊息,可按這裡arrow-up-right加入FB專頁。若這篇文章對您有所幫助,請幫我們分享出去,謝謝您的支持。

Last updated