lisz-works

プログラミングと興味を貴方に

Slack API経由で投稿するbotを作る手順

【スポンサーリンク】

Slack

こんにちわlisです!

今回はSlackのbotを作るために、APIを使えるようにする方法についてです。

作成手順~投稿テストまでの一連の流れを書いていきます。

新しいアプリケーションを作成

Slack APIのYour Appsにアクセスします。

api.slack.com

このリンクから飛ぶと「Your Apps」というページに飛びます。

Create New Appボタンを押下

ここで「Create New Appボタン」を押します。

作成するアプリの設定

作成するアプリ名と、ターゲットのワークスペースを選択します。

選択したら「Create Appボタン」を押す。

アプリの設定

OAuth & Permissions

サイドメニューから「OAuth & Permissions」を選択。

Add an Oauth Scope

「Scopes」という欄までスクロールし、「Add an Oauth Scopeボタン」を押します。

chat:writeを設定する

ここで「chart:write」という項目を選択します。

キーボード入力すると、サーチがかかるので探すのが楽です。

chat:writeが追加される

こんな感じで「chat:write」の権限がが追加されました。

アクセストークンの取得

Install App to Workspace

ページの上部にスクロールし、「OAuth Tokens & Redirect URLs」にある「Install App to Workspaceボタン」を押します。

アクセス権限のリクエストを許可

アクセス権限のリクエストが出ます。

「許可ボタン」で許可しましょう。

アクセストークンをコピーする

許可するとアクセストークンが発行されます。

「Copyボタン」からコピーしましょう!

チャンネルでアプリを登録

これでアプリの用意は整いました。

しかしSlackのチャンネル側でアプリを登録しないと使用できません。

まずはSlackにアクセスして、アプリを使いたいチャンネルを表示しましょう。

チャンネルの詳細を開く

チャンネルにアクセスしたら、右上のボタンから詳細を開きます。

その他→アプリを追加する

「その他」から「アプリを追加する」を押します。

作成したアプリを追加する

アプリの一覧が表示されます。

先程作成したアプリの右側にある「追加ボタン」を押しましょう!

これでAPIを実行すれば、このチャンネルに投稿することができるようになりました!

テスト

さて、作成したアプリのテストを行いましょう。

これで「APIからちゃんとチャンネルに投稿できる!」ということが確認できます。

chat.postMessageのテストページにアクセスします。

api.slack.com

chat.postMessageのテストページ

色々入力する項目がありますが、必要なのは最初にある3つだけです。

入力項目はこんな感じ。

Argument 入力値
token(上段) いじらない
token(下段) コピーしたアクセストークン
channel チャンネル名
text 投稿したいテキスト

channelの指定方法は

  1. #チャンネル名
  2. URLから取得するチャンネルID

と2種類ありますが、Slackで表示されているままの「#チャンネル名」を使ったほうが楽です。

Test Methodボタンでテスト実行

入力したら下の方にスクロールして、「Test Methodボタン」でテストを実行しましょう!

実行すると、ボタンの下の方にあるテキストエリアに結果が表示されます。

{
    "ok": true,
    (中略)
}

のように"ok"がtrueなら成功です!

testappからメッセージが!

実際にSlackのチャンネルをチェックすると、testappからメッセージが入っていますね!

エラーメッセージ

テストを実行して表示されたエラーについてです。

invalid_auth

{
    "ok": false,
    "error": "invalid_auth"
}

認証の情報が誤ってる的なメッセージです。

アクセストークンが正しいか確認しましょう。

not_in_channel

{
    "ok": false,
    "error": "not_in_channel"
}

チャンネルにアクセスできないみたいです。

  • 対象のチェンネル名/IDが正しいか?
  • チャンネルでアプリ登録がされているか?

を確認してみましょう。

参考

コチラを参考にしました。ありがとうございました!

api.slack.com

api.slack.com

qiita.com

note.com

encr.jp

あとがき

Slack API経由で投稿するbotを作る手順でした!

これでプログラムからSlackへメッセージを投げることができるようになります。

curlで投げたりPythonで投げたりとかできそうです!

わーい