SlackにAPI経由でメッセージ・画像を送信するための権限設定

こんにちは。 エキサイト株式会社の三浦です。

Slackは、多くの人が使っているメッセージングアプリケーションです。 また、単に人間がメッセージを送るだけでなく、Slack APIを使うことでプログラムから自動でメッセージを送信することができます。

今回は、Slack APIからSlackにメッセージ・画像ファイルを送信する際に必要となるSlack APIの設定を説明していきます。 なおこちらは、2021年7月現在の方法となっていますので、あらかじめご了承ください。

Slack APIとは

Slack API は、使用することでSlackに対してプログラム等を通じて自動でメッセージやファイルの送信をすることができるようになる仕組みです。 弊社ではこの仕組みを使って、スプレッドシートにまとめているサービスの各種KPIをGoogle App Scriptを通じて毎朝ピックアップしてSlackに流すようにしており、ざっくりとしたサービスの数字把握に役立てています。

このSlack APIですが、使用する際に細かい権限設定をする必要があり、少し複雑です。

文字列・ファイルを送信するためのSlack APIの設定方法

まずは、 「アプリ作成」 画面に行きます。

f:id:excite-takayuki-miura:20210712103026p:plain

Create New App ボタンを押し、 From scratch を選びましょう。

f:id:excite-takayuki-miura:20210712153833p:plain

App Name には自由な名前を、 Pick a workspace to develop your app in では、Slack APIを使用したいworkspaceを選びます。

アプリの作成をすると、 Basic Information というページに飛びます。 ここから、今作成した App に必要な権限等を付与していくことになります。

権限の付与のために、 Permissions を選択しましょう。

f:id:excite-takayuki-miura:20210712112231p:plain

なお、 Incoming Webhooks でもSlackにメッセージを送信することはできますが、ファイルの送信はできないようです。 メッセージの送信だけなら構いませんが、もしファイルも送信したいのであれば、 Incoming Webhooks は選ばないようにしてください。

Permissions を選択すると、左ナビの OAuth & Permissions というページに飛びます。 下にスクロールしていくと、 Scopes という項目があるので、そこから権限を設定していきます。

Bot Token Scopes の権限を設定しましょう。

f:id:excite-takayuki-miura:20210712113526p:plain

メッセージ送信のために chat:write を、ファイルの送信のために files:write を選択します。

f:id:excite-takayuki-miura:20210712113625p:plain

選択後、一番上にスクロールすると Install to Workspace というボタンがクリック可能になっているので、クリックします。

f:id:excite-takayuki-miura:20210712113711p:plain

リクエストの許可を求めるページに遷移するので、許可をするとこのアプリケーションが使用可能になります。

許可をすると Bot User OAuth Token が表示されているはずです。 ただし、この時点ではまだメッセージやファイルを送信することはできません。

最後にSlack本体にて、Slack APIを使用したいチャンネルの「ショートカット」か、チャンネル詳細の「インテグレーション」から今回作ったアプリを追加してください。

f:id:excite-takayuki-miura:20210712114120p:plain

f:id:excite-takayuki-miura:20210712114303p:plain

これで準備が整いました。

Bot User OAuth Token を使った具体的なメッセージ・ファイル送信方法は今回は省略します。

こちら など、色々なところに情報が載っていると思いますので、そちらでご確認ください。

最後に

Slackの権限回りは、時間が経つと変わっている場合があります。 私も、昔やった設定方法とは異なっているような気がして少し戸惑いました。

この方法もいずれは違うやり方になっている可能性はありますが、それまでは役に立てば幸いです。