ホームに戻る
出典 :
基礎からはじめる入門者向けSlackアプリ開発(Express, Bolt) | アールエフェクト Slackアプリ制作超入門:最初のBotメッセージを送信するまで | Akashic Records 【Slack API】C#からSlackにメッセージを送信する【Incoming Webhook】|なないろ Slash Commandを外部から実行する - Qiita cURL - Wikipedia
目次 :

※この記事は書きかけです。

Slackアプリでできること

外部のアプリケーションからSlackへのメッセージ送信や、サーバを介したインタラクティブな通信が可能となる。

アプリの作成手順

「アプリの作成(Create an app)」と表記されてはいるが、ここで紹介する手順は「外部アプリケーションへの窓口(インタフェース)を用意する」のに近い。

アプリの設定

  1. Slack API のページに移動し、"Create an app"を押す。
  2. "Your Apps"のページに移動するので、"Create an app"を押す。
  3. ダイアログが開くので、"From scratch"を押す。
  4. アプリ名を入力、登録先ワークスペースを選択し、"Create App"を押す。
  5. "Basic Information" > "Add features and functionality" > "Permissions"を押す。
  6. "OAuth & Permissions"のページに移動するので、下方向にスクロールし、
    "Scopes"下の"Bot Token Scopes" > "Add an OAuth Scope"(外部からの投稿をBotとして行う場合)
    または"User Token Scopes" > "Add an OAuth Scope"(外部からの投稿をユーザ(例 : Takahata Shinji)として行う場合)を押し、
    "chat:write"を選択する。
    (通常の投稿であれば上記で対応可能。その他のスコープについては割愛。)


  7. 上方向にスクロールし、"OAuth Tokens for Your Workspace" > "Request to Install"を押す。

  8. ダイアログが開くので、"Submit Request"を押す。
    リクエストが届けば、Slackbotからメッセージが届く。

アプリのインストール

  1. "Your App"ページ左側メニューの"Basic Information"を押す。

  2. "Basic Information" > "Add features and functionality"にチェックがついていることを確認し、
    "Install your app" > "Install to Workspace"を押す。

  3. "許可する"を押す。
    インストールに成功すれば"Basic Information" > "Install your App"にチェックがつく。


トークンの取得

トークンとは、外部アプリケーションからSlack Appを介して投稿を行う際に、用いるAppを特定する鍵のことを指す。
ユーザとして投稿する場合と、Botとして投稿を行う場合とで異なるトークンを用いる点に注意。
  1. "Your App"ページ左側メニューの"OAuth & Permissions"を押す。
    ユーザ、Bot投稿用のトークンが表示される。"Copy"を押すとクリップボードにコピーされる。

チャンネルへのAppの追加(チャンネルへの投稿の許可)

投稿先となるチャンネルにAppを追加することで、Appを介したチャンネルへの投稿が可能となる。
  1. Slackを開き、登録先のチャンネルを右クリック、「チャンネル詳細を開く」を選択する。

  2. 「インテグレーション」タブを選択し、「App」>「アプリを追加する」を押す。

  3. 検索欄に追加したいApp名を入力し、表示されたAppが正しければ「追加」を押す。

cURLを用いたSlackへの投稿

cURLとは、様々なプロトコルを用いたデータ転送を可能とするライブラリと、コマンドラインインタフェースの組である。
cURLを用いることで、HTTPリクエストの形式でSlackへのメッセージ送信が可能となる。
UNIX / Linuxだけでなく、Windowsでも利用可能。
以下、Windows + PowerShellでの例。

( "--data" は "-d" と同義)

メッセージの形式

解説のために改行を挿入。実際には空白で連結する。
curl -X POST -H 'Authorization: Bearer xoxb-$$$$$' //< 青字はトークン -H 'Content-type: application/json;charset=UTF-8' -d '{"channel":"@username","text":"Test"}' //< {}内に送信先チャンネル、メッセージを記述 https://slack.com/api/chat.postMessage //< SlackのURL
項目 記述例 備考
トークン 「トークンの取得」で
取得したトークン
送信データ 送信先チャンネル /
ユーザ名
チャンネルに送信する場合 :
チャンネル名
\"channel\":\"report-takahata\"
(チャンネル"report-takahata"に送信)
ユーザに送信する場合 :
"@" + ユーザ名
\"channel\":\"@Takahata.Shinji\"
(ユーザ"Takahata Shinji"に送信)
ユーザ名の空白" "はドット"."で置換する
送信メッセージ 送信するメッセージ \"text\":\"Test\"
(メッセージとして"Test"を送信)

注意が必要な点

Windows版cURLに限り、送信データ中の二重引用符(")は、バックスラッシュ(\)を付与する必要がある

Webhookを用いたSlackへの投稿

投稿先のチャンネル(またはユーザ)に紐づいたURL(Webhook)を用いることで、より簡便にメッセージを送信できる。

準備(Webhook URLの作成)

  1. "Your App"ページ左側メニューの"Incoming Webhooks"を押す。

  2. "Activate Incoming Webhooks"トグルボタンをオンにし、
    "Add New Webhook to Workspace" を押す。

  3. コンボボックスに投稿先のチャンネルを入力し、「許可する」を押す。

  4. 許可されると、Webhook URLが作成される。
    "Incoming Webhooks"で確認可能。

cURLを用いた投稿


解説のために改行を挿入。実際には空白で連結する。 ( "--data" は "-d" と同義)
curl -X POST -H 'Content-type: application/json;charset=UTF-8' -d '{"text":"Test"}' //< {}内にメッセージを記述 https://hooks.slack.com/services/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 //< Webhook URL
項目 記述例 備考
送信データ 送信メッセージ 送信するメッセージ \"text\":\"Test\"
(メッセージとして"Test"を送信)

課題