Slackにメッセージを送信する

最終更新日: 2022年8月12日

Slackメッセージ送信ブロック

アドオンギャラリー「掲示板」を題材にします。掲示板の書き込みのタイミングで、Slackにメッセージを送ります。

アドオンギャラリー掲示板アプリ

登録のタイミングにブロックを配置します。「外部連携」ブロック群から「Slack」ブロックを選びます。

Slackブロックを配置する(1)
Slackブロックを配置する(2)

送信メッセージは任意の文字列を用意できます。ここでは掲示板のタイトルと作成者を含めた文言を用意します。

送信メッセージの設定

Slackブロックの右クリックメニューで「外部入力」を選び、ブロックの形を変えました。「URL」のパラメータに Slack で作成した "Webhook" の URL を設定します。Webhook は次節で説明します。

URLの設定(1)

Slack側で作成したWebhookのURLを設定します。

URLの設定(2)

このブロックはステータスコードを返します。"200" でなければ何らかのエラーです。そこで「ステータス」という変数を用意し、ブロックから受け取ります。ステータスが200でない場合は、送信エラーの警告メッセージを画面に出力するようにしました。

ステータスコードの判定処理を加える

更新タイミングのスクリプト

同じように更新のタイミングでもスクリプトを用意します。更新用のメッセージに修正していますが、基本的な処理は(登録時と)同じです。

更新タイミングのスクリプト

Slackの設定 (Botの作成)

Slackのアカウントはすでに取得済み、とします。(Slackアカウントの取得方法や、Slackの基本的な使い方の説明は割愛します。)

ここでは "Bot" というアプリケーション形式を使います。特定のチャンネルに対して Wagby からメッセージを送信します。

開発者は次の設定を行います。

  • Slack上の(自分が利用したい)ワークスペースに、Wagbyがメッセージを書き込むことができるチャンネルを用意します。(作成せず、既存のチャンネルを使うこともできます。)
  • Wagbyのメッセージを受信したいSlackのアカウント(利用者)を 、そのチャンネルに登録します。
  • Wagbyのメッセージを受信したい利用者は、ここで作成した「App (アプリケーション)」を自身のワークスペースにインストールします。

以降の説明ではJasmine Dev Spaceというワークスペースを使います。このワークスペースに#devというチャンネルを用意しています。このワークスペースとチャンネルの名前を、ご自身のSlack環境にあわせて適当に読み替えてください。

ここで紹介する画面は2022年8月時点のものです。Slack側の画面構成が変わっている場合は、適切に読み替えてください。
  1. Slack API ページ https://api.slack.com/ を開きます。"Create an app" をクリックし、新規にSlackのAppを作成します。
    slack api トップページ
  2. "Create an App"をクリックした画面です。"From scratch" というオプションを選択します。
    Create an App
  3. アプリケーション名 (App) を入力し、インストール先となるワークスペースを選択します。ここではアプリケーション名を "MessageFromWagby" としました。ワークスペースは "Jasmine Dev Space" としていますので、適当に読み替えてください。
    アプリケーション名とワークスペースの指定
  4. 空のアプリケーションが作成されました。
    空のアプリケーションが作成された
  5. 今回は Webhooks を使います。ここで作成する Webhooks の URL が、Wagby の Slack ブロックで指定する URL になります。左側のタブから "Incoming Webhooks" を選びます。
    Webhooksの設定(1)
  6. "activate incoming webooks"というスライドボタンをONにします。またワークスペースとチャンネルを(このページの下部で)選択します。
    Webhooksの設定(2)

テスト

HTTP POST 通信が行えるクライアントを使ってテストすることができます。(例 VSCode の Thunder Clientなど)

URLhttps://hooks.slack.com/services/T02U... (略)
HTTPヘッダContent-Type: application/json を付与する。
ボディ{ "text" : "(任意)" }とする。例 { "text" : "こんにちは、Slack!" }

送信が成功すると、Slackのチャンネルにメッセージが表示されます。