日常的にコミュニケーションに利用しているSlackですが、システムやアプリケーションとの連携も容易で、システムイベントの通知などに利用されるケースも多いのではないでしょうか。
設定は簡単な部類だとは思いますが、「API経由でチャットメッセージをチャネルへポストする」に特化した設定手順を記録しておきたいと思います。
本記事の内容
下記公式ページにしたがって設定していく手順を示します。
ほぼそのままですが、トークンを発行してAPI経由でメッセージをポストすることをゴールとした内容とします。
設定手順
Appsページへアクセス
Slackにログインした状態で次のURLへアクセスします。
App作成操作
Your Appsページが開きますので、 [Create New App] をクリックします。
続いて [From scrach] を選択します。
最後にアプリ名とワークスペースを選択し、 [Create App] をクリックします。
※注釈にもありますが、アプリ名は後で変更できます。とりあえず試すならテンポラリな名前でも良さそうです。(私はこういうところで悩んで時間使いがちなので助かります)
Appの権限設定
Appが作成され、設定ページが表示されます。
左サイドメニューから [OAuth & Permissions] を選択します。
下へスクロールし、Scopesセクション [Add an OAuth Scope] をクリックします。
プルダウンから chat:write
を選択します。
chat:write
が設定された状態です。
ワークスペースへ Appをインストール
続いて、左サイドメニューから [Install App] を選択、 [Install to Workspace] をクリックします。
確認ページで [Allow] をクリックします。
xoxb-
で始まるBot User OAuth Tokenが発行されました。
([OAuth & Permissions] ページでも同じトークンを確認できます)
Appをチャネルへ参加
メッセージポストさせたいチャネルへこのAppを参加させます。
対象チャネルページで /invite
と入力し、 [Add apps to this channel] を選択します。
選択画面で対象Appを探して [Add] をクリックします。
メッセージをポスト
公式ページにある通り、 curl
コマンドでポストしてみます。
上の手順で取得したトークンを使用します。
curl -X POST \ -F channel=test_channel \ -F text="こんにちは" \ https://slack.com/api/chat.postMessage \ -H "Authorization: Bearer xoxb-123....."
Slackページ上で確認できます。
なお channel
へ指定する値はチャネルIDまたはチャネルIDとなります。(詳細は下記リンク参照)
chat.postMessage method | Slack
以上でSlackチャネルへAPI経由でメッセージポストができました。
ご参考になれば幸いです。