こんにちわlisです!
今回はSlackのbotを作るために、APIを使えるようにする方法についてです。
作成手順~投稿テストまでの一連の流れを書いていきます。
新しいアプリケーションを作成
Slack APIのYour Appsにアクセスします。
このリンクから飛ぶと「Your Apps」というページに飛びます。
ここで「Create New Appボタン」を押します。
作成するアプリ名と、ターゲットのワークスペースを選択します。
選択したら「Create Appボタン」を押す。
アプリの設定
サイドメニューから「OAuth & Permissions」を選択。
「Scopes」という欄までスクロールし、「Add an Oauth Scopeボタン」を押します。
ここで「chart:write」という項目を選択します。
キーボード入力すると、サーチがかかるので探すのが楽です。
こんな感じで「chat:write」の権限がが追加されました。
アクセストークンの取得
ページの上部にスクロールし、「OAuth Tokens & Redirect URLs」にある「Install App to Workspaceボタン」を押します。
アクセス権限のリクエストが出ます。
「許可ボタン」で許可しましょう。
許可するとアクセストークンが発行されます。
「Copyボタン」からコピーしましょう!
チャンネルでアプリを登録
これでアプリの用意は整いました。
しかしSlackのチャンネル側でアプリを登録しないと使用できません。
まずはSlackにアクセスして、アプリを使いたいチャンネルを表示しましょう。
チャンネルにアクセスしたら、右上のボタンから詳細を開きます。
「その他」から「アプリを追加する」を押します。
アプリの一覧が表示されます。
先程作成したアプリの右側にある「追加ボタン」を押しましょう!
これでAPIを実行すれば、このチャンネルに投稿することができるようになりました!
テスト
さて、作成したアプリのテストを行いましょう。
これで「APIからちゃんとチャンネルに投稿できる!」ということが確認できます。
chat.postMessageのテストページにアクセスします。
色々入力する項目がありますが、必要なのは最初にある3つだけです。
入力項目はこんな感じ。
Argument | 入力値 |
---|---|
token(上段) | いじらない |
token(下段) | コピーしたアクセストークン |
channel | チャンネル名 |
text | 投稿したいテキスト |
channelの指定方法は
- #チャンネル名
- URLから取得するチャンネルID
と2種類ありますが、Slackで表示されているままの「#チャンネル名」を使ったほうが楽です。
入力したら下の方にスクロールして、「Test Methodボタン」でテストを実行しましょう!
実行すると、ボタンの下の方にあるテキストエリアに結果が表示されます。
{ "ok": true, (中略) }
のように"ok"がtrueなら成功です!
実際にSlackのチャンネルをチェックすると、testappからメッセージが入っていますね!
エラーメッセージ
テストを実行して表示されたエラーについてです。
invalid_auth
{ "ok": false, "error": "invalid_auth" }
認証の情報が誤ってる的なメッセージです。
アクセストークンが正しいか確認しましょう。
not_in_channel
{ "ok": false, "error": "not_in_channel" }
チャンネルにアクセスできないみたいです。
- 対象のチェンネル名/IDが正しいか?
- チャンネルでアプリ登録がされているか?
を確認してみましょう。
参考
コチラを参考にしました。ありがとうございました!
あとがき
Slack API経由で投稿するbotを作る手順でした!
これでプログラムからSlackへメッセージを投げることができるようになります。
curlで投げたり、Pythonで投げたりとかできそうです!
わーい