Slack API を使用してメッセージを投稿する
Slack API を使用してアプリを作成 ~ メッセージを投稿するまでの手順メモ。
アプリを作成する
「Slack API: Applications」 にアクセス。
ワークスペースにログインしていない場合はする。
Create New App
をクリック。
From scratch
をクリック。
任意のアプリ名を入力、ワークスペースを選択し、 Create App
をクリック。
これでアプリが作成される。
スコープを設定する
OAuth & Permissions
をクリック。
ページの中ほどに Scopes
セクションがあり、ここでアプリにスコープを設定することができる。
ボットとして API を実行する際のスコープを設定する Bot Token Scopes
と、ユーザーとして API を実行する際のスコープを設定する User Token Scopes
がある。
まず Bot Token Scopes
を設定する。
Add an OAuth Scope
をクリック。
メッセージを投稿するには chat:write
スコープが必要なので、追加する。
User Token Scope
も同様の手順で chat:write
スコープを追加する。
アプリをワークスペースにインストールする
スコープを設定すると同じページの一番上のところで Install to Workspace
ボタンが有効になっているので、クリックする。
権限をリクエストされるので、 許可する
をクリック。
アプリのインストールに成功すると 2 つのトークンが生成される。
-
xoxp-
から始まるUser OAuth Token
( ユーザーとして API を実行するためのトークン ) -
xoxb-
から始まるBot User OAuth Token
( ボットとして API を実行するためのトークン )
アプリをチャンネルに追加する
Slack でショートカットボタン -> このチャンネルにアプリを追加する
の順にクリック。
今回作成したアプリを探して 追加
をクリック。
メッセージを投稿する
以下のエンドポイントにリクエストを送信することでメッセージを投稿できる。
POST https://slack.com/api/chat.postMessage
今回使用するパラメータは以下。
パラメータ名 | 説明 |
---|---|
token |
「アプリをワークスペースにインストールする」手順で生成された OAuth Token 。 |
channel |
メッセージの投稿先。 |
text |
メッセージの本文。マークダウンを使用できる。 |
その他に指定できるパラメータについては公式ドキュメントを参照。
curl
を使用したサンプル
Bot User OAuth Token
を使用してみる。
$ curl -X POST 'https://slack.com/api/chat.postMessage' \
-d 'token=xoxb-668814143316-2441900189495-E0TZsRkP18KjsKVNByhZwIIG' \
-d 'channel=#test_channel' \
-d 'text=*テキスト*'
ボット ( アプリ ) としてメッセージを投稿できた。
User OAuth Token
を使用してみる。
$ curl -X POST 'https://slack.com/api/chat.postMessage' \
-d 'token=xoxp-668814143316-669295648309-2441900184311-aaf3e4170e14c8df4976783e33599de0' \
-d 'channel=#test_channel' \
-d 'text=*テキスト*'
ユーザーとしてメッセージを投稿できた。
プログラムから Slack メッセージを投稿する
参考
Discussion
Thanks for note, it really helps.
Thanks for your support!!