Slackアプリ制作超入門:最初のBotメッセージを送信するまで

スポンサーリンク

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」を追加

slack_oauth_scope

インストール

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_add_app

slack_add_app_list

追加する候補に表示されない場合は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の発言が表示されたら成功です。

slack_message_sent

補足

  • jsonのchannelに入れる値はチャンネルの表示名でもチャンネルURLに含まれる英数字でもどちらでも通るようです。
  • 今回は素の状態でWeb APIを使いましたが、メッセージを送るだけだったらIncoming Webhooks機能を使ったほうが良さそうです。

コメント

タイトルとURLをコピーしました