Slackアプリ(App)制作の超入門として、App作成〜curlを使って最初のBotメッセージを送信するまでの手順です。
準備
Workspaceは無料でも作れるので個人開発用のWorkspaceを1個作って開発すると良いです。
Appの作成
Unlock your productivity potential with Slack Platform
Connect, simplify, and automate work.
- 右上の「Your Apps」クリック
- 次のページで「Create New App」クリック
- 名前を設定(後で変更可能)
- Workspaceの選択
- (複数ワークスペースにサインインしている場合Appを入れたいWorkspaceを選ぶ)
- 「Create App」クリック
作成されるとApp設定画面に飛びます。
後で開く場合は先程のYour Appsのページから作成したAppをクリックします。
OAuth scpeの設定
Appが何かをするためには対応するOAuth scopeの設定が必要です。
今回はほぼ決め打ちでメッセージを送るだけなのでchat:writeだけで十分。
- App設定画面 > OAuth & Permissions
- Scopes > Bot Token Scopes
- Add an OAuth Scopeを押して、「chat:writ」を追加
インストール
APIリクエストにはインストール後に表示されるOAuth Tokenが必要です。
- App設定画面 > Settings > Install App
- 「Install App to Workspace」クリック
- OAuth scopeで設定した権限の確認が表示されるので「許可する」クリック
Install AppのページにBot User OAuth Access Tokenが表示されるようになります。
Appを発言させたいチャンネルに参加させる
これをやらないと次のAPIリクエストでnot_in_channelというエラーが返ってきます。
- 発言させたいチャンネルの詳細(iマーク)をクリック
- その他 > アプリを追加する
- 今回作成したAppの「追加」クリック
追加する候補に表示されない場合はSlackを再起動すると直るかもしれません。
curlでの手動送信
Slack Web APIのchat.postMessageに対してcurlでPOSTリクエストを送ることで動作確認します。
初期状態で作成されているgeneralチャンネルに送るとします。
(別のチャンネルに送る場合はjsonのchannelの値を変えてください)
Authorizationヘッダの[OAuthトークン]の部分をインストール後に表示されたトークンに書き換えてください。
ターミナルで以下を実行。
curl -H 'Content-Type:application/json' \
-H 'Authorization: Bearer [OAuthトークン]' \
-d '{"channel": "general", "text": "Hello, world"}' \
https://slack.com/api/chat.postMessage
レスポンスがok:trueとなってSlackのチャンネルにAppの発言が表示されたら成功です。
補足
- jsonのchannelに入れる値はチャンネルの表示名でもチャンネルURLに含まれる英数字でもどちらでも通るようです。
- 今回は素の状態でWeb APIを使いましたが、メッセージを送るだけだったらIncoming Webhooks機能を使ったほうが良さそうです。
コメント