Slack に Incoming WebHooks で投稿する

Slack に Incoming WebHooks で投稿する

Slack に Incoming WebHooks で投稿する

Incoming WebHooks – Slack

Incoming WebHooks という機能を使えば、Slackのアプリケーションではなく、外部からSlackにメッセージを送信することが可能です。やり方は非常に簡単で、指定されたURLにJSON形式のメッセージデータでPOSTするだけです。

Slack に Incoming WebHooksをインストールする

まずは Slack に Incoming WebHooks をインストールすします。アプリの右下にある “Apps(+)” をクリックします。すると App を検索できる画面になるので、”income” と入力します。Incoming WebHooks が出てくるのでそれをインストールします。

Incoming WebHooksインストール

“Add Configuration” をクリックします。

Incoming WebHooksインストール

投稿先のチャンネルを選び、ボタンを押します。

Incoming WebHooksインストール

これでインストールと設定はひとまず完了です。遷移先のページには使い方が書いてあるのでその通りに行えば、投稿が可能です。

Incoming WebHooksインストール

ページのをスクロールすると次のような設定欄があります。そこにあるURLが投稿先となるURLです。ここのURLをコピーしておきましょう。この画面は “App(+)” から検索すれば確認できます。

プログラムからメッセージデータを投稿してみる

Incoming WebHooks – Slack

設定が完了し、URLが分かれば、後は手順のとおりにデータを投げるだけです。上記URLに色々と載っています。

今回は適当なデータをC#のコード上から投げてみようと思います。JSONを使うための JSON.NET を利用しています。

using System;
using System.Text;
using System.Net;
using Newtonsoft.Json; // Install-Package Newtonsoft.Json

class Program
{
    static void Main(string[] args)
    {
        // ポストするデータをJSON形式で作成
        var data = JsonConvert.SerializeObject(new
        {
            text = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
            icon_emoji = ":ghost:",
            username = "テストbot"
        });

        // クライアントを設定
        var webClient = new WebClient();
        webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json;charset=UTF-8");
        webClient.Encoding = Encoding.UTF8;

        // Webhook URL にデータをアップロード
        var webHookUrl = "https://設定画面のWebhookURLを入れます";
        webClient.UploadString(webHookUrl, data);
    }
}

実行した結果 …

Incoming WebHooksで投稿

とりあえずうまくいったみたいです。

未分類カテゴリの最新記事