C#

【C#】Slackにメッセージを送信する【Incoming Webhook】

はじめに

この記事の情報は古いです。

2020年5月時点での最新のSlack APIに関しては 【Slack API】C#からSlackにメッセージを送信する【Incoming Webhook】という記事にまとめました。

 

C#からSlackへメッセージを送る方法を調べたのでまとめました。

おおまかな流れはこのようになっています。

  1. Incoming Webhookを導入
  2. Webhook URLを取得
  3. 送信するメッセージなどをJson形式で表現する
  4. (2)で取得したURLに(3)をPOSTする
環境

  • OS: Windows10
  • 統合開発環境: Visual Studio 2019 Community
  • 言語: C#
  • フレームワーク: .Net Core 3.1

Incoming Webhookの導入

Incoming Webhookにアクセスして[Slackに追加]を選択します。

メッセージ送信を行いたいチャンネルを選択して[Incoming Webhookインテグレーションの追加]をクリック

Webhook URLを控えます。

Webhook URLは後からでも確認できます。

Incoming Webhookをクリックして[アプリへ移動する]をクリック

プログラム

今回はコンソールアプリケーションで作成します。

  • using System;
  • using System.Net.Http;
  • using System.Text;
  • using System.Text.Json;

名前空間を記述しておいてください。

using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;

class Program
{
    static void Main(string[] args)
    {
        var url = "[Webhook URL]";
        var payload = new Payload
        {
            text = "現在時刻: " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
            username = "時報",
            icon_emoji = ":scream:"
        };
        
        Send(url, payload);
    }

    static void Send(string url, Payload payload)
    {
        var json = JsonSerializer.Serialize(payload);

        var client = new HttpClient();
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        var res = client.PostAsync(url, content).Result;
        Console.WriteLine(res);
    }
}

public class Payload
{
    public string channel { get; set; }
    public string username { get; set; }
    public string text { get; set; }
    public string icon_emoji { get; set; }
    public string icon_url { get; set; }
}

動作確認

プログラムを実行するとSlackにメッセージが送信できたことが確認できたかと思います。