Slackチャンネルにメッセージを投稿できるSlackAppを作成する
Slackのアプリを使ってAWSからのセキュリティイベントを通知させる際に、メッセージ投稿用のSlackAppを作成したので手順を紹介します。
弊社から提供しているセキュアアカウントの通知をSlackに送りたい場合も、本手順を実施することで通知用のSlackアプリを作成できますので是非ご活用ください。
やってみる
基本的には公式の手順に沿って行なっていきます。
Slackアプリの作成
まずはSkackアプリを作成していきます。以下のリンクから作成画面を開いてください。
Create New App
をクリックします。
執筆時点(2022/02/08)では以下のように選択肢が出ますが、上のFrom scratch
を選択します。
次にアプリの名前と作成するワークスペースの選択が求められます。アプリ名は後からでも変更可能です。ワークスペースはログインしていればプルダウンから選択できます。もし作成したいワークスペースが表示されない場合は、左下のSign into a different workspace
からログインしましょう。
入力が終わったらCreate Appをクリックしてください。
作成が完了すると、アプリが作成され個別ページへ遷移します。
スコープのリクエスト
アプリを作成したら、次にアプリに権限(スコープ)を追加していきます。今回はアプリからチャンネルにメッセージ投稿ができるように書き込み権限を付与します。
先ほどの画面から左のナビゲーションバーのOAuth & Permissions
をクリックします。
少し下にスライドすると、Scopesというセクションがあるので、そこからAdd an OAuth Scope
をクリックしてください。今回追加するのはBot Token Scopes
になります。近くにUser Token Scopes
があるので間違えないよう注意しましょう。
すると、付与する権限のプルダウンが表示されるので、chat:write
で検索して選択します。
これでアプリがチャンネルにメッセージを投稿するための権限を付与できました。
ワークスペースへのインストール
アプリ作成でワークスペースを選択しましたが、認証するためのOAuthトークンを取得する必要があります。そのため、ワークスペースへインストールしていきます。
スコープの設定画面から一番上にスライドすると、OAuth Tokens for Your Workspace セクションがあるので、Install to Workspace
をクリックしてください。
選択したワークスペースへのアクセスリクエストの画面へ遷移するので[許可する]をクリックします。
連携に問題がなければ以下のようにBot User OAuth Token
が払い出されます。何かこのアプリから通知させたい場合は、この認証情報を利用して利用してください。
Slackチャンネルへの追加
Slackからのメッセージを投稿したいチャンネルに作成したアプリを追加します。
追加したいチャンネルの投稿画面に@{アプリ名}
で投稿すると、先ほど作成したアプリをチャンネルに追加するか問われるのでチャンネルに追加する
をクリックしましょう。
以下のような表示になれば完了です。
チャンネルIDの確認方法
作成したアプリからメッセージを投稿する際には、チャンネルIDが必要になります。チャンネルIDの確認方法はチャンネルの詳細を開いて、下の方からコピーできますので控えておきましょう。
メッセージを送ってみる
アプリを作って終わりだと少し寂しいので、試しに作成したアプリを通じてメッセージを投稿してみます。
以下の情報を用意してください。
- アプリを追加したチャンネルID
- Bot User OAuth Token
以下を取得した情報に書き換えてコンソールから実行してみます。
curl -X POST -F channel={チャンネルID} -F text="テストだよ" https://slack.com/api/chat.postMessage -H "Authorization: Bearer {Bot User OAuth Token}"
実行すると、以下のように指定したメッセージをアプリから投稿できました。
(補足)SlackAppのアイコンを変更する
SlackAppは未設定の場合Slackのデフォルトアイコンが使用されますが、任意のアイコンを使用できます。用途に合わせてアイコンを設定すると視覚的にも分かりやすいので、是非設定しておきましょう。
SlackAPI から作成したアプリを開いてBasic Informationを開きます。
下にスクロールするとDisplay Information
というセクションがあるので、そこで自由に設定できます。ここで設定できるアイコンは512px × 512px
、もしくは2000px × 2000px
の正方形のみになるので気をつけましょう。
今回はAWSからの通知用としてアイコンを設定してみました。
アイコンだけでなくアプリ名の変更やdescriptionの設定もできるので、利用方法に合わせた設定をしてみてください。
まとめ
Slackへメッセージを投稿できるSlackAppを作成してみました。チャンネルIDとBot User OAuth Tokenがあれば自由にメッセージを投稿できるので、用途に合わせた通知アプリを作成してみてください。