スポンサーリンク
Contents
はじめに
この記事の情報は古いです。
2020年5月時点での最新のSlack APIに関しては 【Slack API】C#からSlackにメッセージを送信する【Incoming Webhook】という記事にまとめました。
C#からSlackへメッセージを送る方法を調べたのでまとめました。
おおまかな流れはこのようになっています。
- Incoming Webhookを導入
- Webhook URLを取得
- 送信するメッセージなどをJson形式で表現する
- (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にメッセージが送信できたことが確認できたかと思います。
スポンサーリンク
スポンサーリンク