ETH官方钱包

前往
大廳
主題

用C#.NET來製作linebot:#5:建立一個(gè)範(fàn)本專案

小受NECO | 2021-08-22 14:38:21 | 巴幣 0 | 人氣 593

5.建立一個(gè)範(fàn)本專案
a.利用CMD來下指令
b
.開一個(gè)console來控制linebot
c.在CODE中使用CMD把.NET專案上傳至heroku
.建立控制器
.在專案中加入buildpack
.上傳
d.設(shè)定webhoook
e.測試echo機(jī)器人
f.玩弄範(fàn)本程式
.Route
.PushMessage
.ReplyMessage

老實(shí)說,我也是看了別人的教學(xué)影片才學(xué)會(huì)這些東西的
好東西呢,就是要拿來分享
巨匠電腦在YOUTUBE頻道上發(fā)布的LINE官方認(rèn)證API專家(LAE),全球最有價(jià)值專家(MVP) #董大偉 老師的教學(xué)影片:【Live講堂】Line Bot聊天機(jī)器人極速開發(fā)

以上是資料來源,以下是本篇
首先,說到程式碼,第一件事就是建立專案資料夾
接下來我主要會(huì)使用CMD來操作資料夾,也會(huì)大致說明這些動(dòng)作是什麼意思
建議在打指令碼的時(shí)候開著資料夾觀察變化,比較不會(huì)不知道自己在幹嘛
我會(huì)先用一隻主控臺(tái)應(yīng)用程式來重現(xiàn)上一篇我們在CMD裡面做的事情
請打開CMD
>dir
檢查CMD所在的資料夾,與旗下的目錄
>mkdir [資料夾名稱]
在當(dāng)前的位置建立一個(gè)資料夾
>cd [資料夾名稱]
進(jìn)入資料夾

我個(gè)人的習(xí)慣是會(huì)先建立一個(gè)領(lǐng)域的資料夾,之後跟這個(gè)領(lǐng)域相關(guān)的專案都會(huì)放在這裡面
>mkdir linebot
>cd linebot
>mkdir necoTest
>cd necoTest
之後這個(gè)necoTest就是我的專案名稱了
我們先建立一個(gè)console,試著重現(xiàn)上一篇結(jié)尾用CMD控制的LINEBOT指令吧
>dotnet new console
>dir
看一下專案底下有沒有成功生出東西
>code .
以VScode打開這個(gè)專案
進(jìn)入code之後,由於這個(gè)編輯器裡面也有CMD可以用,只要按ctrl+`就能叫出來了
之後都在裡面做喔
>dotnet add package linebotsdk

打開Program.cs

好ㄉ,這是一隻大家所熟悉的你好世界
我們在Console.WriteLine("Hello World!");後面加上兩行程式碼:
var channelAccessToken="_TOKEN_";
var UserID="_YOUR_USER_ID_";
TOKEN跟USERID記得要替換成自己的喔

然後按ctrl+`叫出CMD>dotnet run
看看能不能跑:

確定這隻程式能跑之後,就能開始重現(xiàn)指令囉
為了節(jié)省時(shí)間,我們一次把上一篇的CMD指令轉(zhuǎn)換成C#吧
//上一篇的CMD指令
bot.PushMessage(UserID,"我是來自未來ㄉ你");
bot.PushMessage(UserID,1,2);
bot.PushMessage(UserID,new Uri("圖片的網(wǎng)址"));

存檔>CMD>dotnet run
看手機(jī):
啊~圖片好大?

接下來進(jìn)入本篇重點(diǎn)
我們要建立一個(gè)新的專案
會(huì)使用上面教學(xué)影片中的範(fàn)本
也就是ECHO機(jī)器人的部分

一樣開啟CMD,在lniebot資料夾下建立一個(gè)新專案
>cd linebot
>mkdir necoTest2
>cd necoTest2
這次我們建立一個(gè)控制器,並用code開啟
>dotnet new webapi
>dotnet add package linebotsdk
>code .
[ctrl+`]叫出CMD,我們來下載範(fàn)本
這步驟就算在外面的CMD一樣可以做,但是在code裡面比較能夠觀察資料夾的變化
>dotnet new linewebhook
在controllers資料夾中多了很多控制器,先開啟LineWebHookController
這是Echo機(jī)器人的主要程式
他能做到的就是接收使用者的訊息,判斷訊息的種類,如果是文字訊息就回復(fù)一樣的訊息
就像對著山谷大叫時(shí)會(huì)聽到回音一樣

有一些東西是要先改的
首先,請將你的USERID替換進(jìn)去:
var AdminUserId = "___Repleace_it_with_your_Admin_User_ID___";

把你的TOKEN換進(jìn)去:
this.ChannelAccessToken = "___Repleace_it_with_your_Channel_Access_Token___";

回到上面
[Route("api/LineBotWebHook")]
這句話是我們待會(huì)取得網(wǎng)址後,在LINE的webhook後面要加上去的東西
如果只是要做簡單的小程式,也可以改成:
[Route("webhook")]
就可以了,這並不會(huì)影響程式的運(yùn)作

先介紹一下等等要做什麼
這個(gè)webapi他基本上就是一個(gè)網(wǎng)站
我們要想辦法把它放到網(wǎng)際網(wǎng)路上
然後把網(wǎng)址放進(jìn)LINEBOT的webhook上
我們的LINEBOT就可以按照事先寫好的程式回覆使用者

這邊為大家介紹一個(gè)好用的測試工具,叫做ngrok
由於將程式上傳heroku會(huì)花上一兩分鐘的時(shí)間
但如果你上傳後才發(fā)現(xiàn)不能跑
你會(huì)覺得很浪費(fèi)那一分鐘
ngrok能夠?qū)⒛愕闹鳈C(jī)暫時(shí)變成對外開放的伺服器
讓你快速的測試程式有沒有問題
加快DEBUG的速度

請上網(wǎng)搜尋「ngrok」
或是直接按載點(diǎn):https://ngrok.com/download
下載後你的桌面會(huì)多出一個(gè)主控臺(tái)應(yīng)用程式
直接鍵入「ngrok http 5000」



(待更)
送禮物贊助創(chuàng)作者 !
0
留言

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作