使用 .net core 開發 LINE Bot(04) - 透過C#程式碼推播LINE Bot訊息

經過了前面三篇準備,我們是時候要來用 .net core 的 C# 來開發 LINE Bot了。
首先,我們來看如何撰寫程式碼發送(Push) LINE 訊息給用戶。

前面你已經看過我們怎麼用CLI工具在Command Line透過line指令(有點繞口)發送訊息,現在我們來看你怎麼建立一個 .net core 的C#應用程式來發訊息。

建立console application

為了讓範例盡可能簡單,我們先採用 console application。你可以用底下這樣的指令來建立Console App:

dotnet new console

不過,我會先建議你找一個空的資料夾,或建立一個。所以,我們下這樣的指令:

md TestLineBot
cd TestLineBot
dotnet new console

你會看到底下結果:

PS D:\TestLineBot> dotnet new console
Getting ready...
The template "Console Application" was created successfully.

Processing post-creation actions...
Running 'dotnet restore' on D:\TestLineBot\TestLineBot.csproj...
  正在判斷要還原的專案...
  已還原 D:\TestLineBot\TestLineBot.csproj (286 ms 內)。

Restore succeeded.

PS D:\TestLineBot>

這表示你的專案已經建立好了,如果你這表示你的專案已經建立好了,如果你透過ls或dir來顯示資料夾中的內容,應該會發現:

其中主程式是 Program.cs,而TestLineBot.csproj則是 .net core的專案檔,預設與資料夾同名(如果你沒有指定的話)。

接著,我們耀來撰寫程式,我們使用 VS Code作為開發工具。
我們透過 『code .』來開啟VS Code…

請注意 code和 . 中間有個空白。
這個指令的意思是,開啟VS Code,並且預設以當前目錄作為工作目錄。

你會看到畫面如下:

在VS Code當中,你可以用 Ctrl+~ 熱鍵開啟終端機,這個終端機開啟的預設資料夾位置就是你的專案目錄,其實和剛才我們執行 code . 指令的終端機沒啥不同,但好處是在同一個整合畫面中操作比較方便,另外,就是可以開啟多個不同種類的終端機類型(例如 cmd, PowerShell, bash…etc.)。

接著,請輸入底下指令碼:

dotnet add package linebotsdk

輸入時候請確定你的終端機是在正確的模式,windows環境中建議使用PowerShell。執行後會看到底下畫面:

這個動作是幫你安裝 LineBotSDK 套件,該套件是 C# 開發LINE Bot的絕佳選擇

using System;

namespace testlinebot
{
    class Program
    {
        static void Main(string[] args)
        {
            //傳送對象
            var toUserID = "________換成你自己的UserID________";
            //Channel Access Token
            var token = "________換成你LineBot的ChannelAccessToken________";
            //create bot instance
            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(token);
            //send message
            bot.PushMessage(toUserID, "Hello test");
        }
    }
}

上面這幾行程式碼輸入完畢之後(記得要儲存),可以在VS Code的終端機模式執行:

dotnet run

你將會看到:

很簡單吧,我們很輕鬆的,就透過 .net core 發送訊息給用戶了。如果想發送貼圖,可透過底下這樣的指令:

bot.PushMessage(toUserID, 1, 2);

如果想發送圖片,則只需要把圖片的網址傳入即可:

bot.PushMessage(toUserID,new Uri(“https://i.imgur.com/v87f0Gy.png”));

執行 dotnet run後的結果如下:

如何? 換你試試看囉。

留言

這個網誌中的熱門文章

使用 Airtable 在小型需求上取代傳統資料庫

使用Semantic Kernel 建立自然語言請假系統

精彩(且驚人)的Semantic Kernel入門範例

在 LINE Bot 開發中使用Semantic Kernel建立自然語言請假系統

專業的價值...