誰でも分かるはず!本気でSlackBotの作り方を解説してみた!

Slack
この記事は約6分で読めます。

SlackBotを導入しようとしている友人から「SlackBotを導入の方法を教えてくれ」と言われたので、今回は誰でも分かるレベルでハンズオン形式のSlackBot導入ガイドを作ります!

SlackBotとは

Slackには通常のアカウントのユーザー以外に投稿などのアクションを行ってくれるBotユーザーが存在します。

Botユーザーは通常のアカウントとは異なり、監視やアクティビティの応答、インタラクティブメッセージの送信など、便利ツールとしての活用が見込めます

ボットにできること
  チャンネルアクティビティの監視とプロセスの支援
  チャンネルへのメッセージ投稿とメンバーのアクティビティへの応答
  ボタンでチャンネルメッセージをインタラクティブ化

https://slack.com/intl/ja-jp/help/articles/115005265703

SlackBotはSlackAppという機能の中のBot User のことであり、Bot Userを作るにはまずSlackAppの設定を行う必要があります。

更に言えば今回はBot Userを作らないので、厳密に言うとSlackBotというよりはSlackアプリが適切かもしれません。(SlackBotの方がヒットするんや…ごめんな…)

ですが、おそらくやりたいことは出来ているかと思うのでご安心ください!

今回作るもの

今回作るものは外部サーバーからSlackにリクエストが飛んできたら、SlackBotが、

  1. メッセージを投稿
  2. 最新の投稿をテキストを取得
  3. 取得した投稿にスタンプを付与

を行います。

※ 本来ならメッセージを投稿した時点で投稿したテキスト情報は取得できるのですが、友人のリクエストで敢えて最新の投稿を取得する方法を書いてます。

作成手順

基盤になるSlackAppを作る

Slack API: Applications | Slack

↑のページからSlackAppを作ります。

名前は任意で問題ありません。

SlackAppに権限を与える

出来たばかりのSlackAppには何も権限がありません。

権限がなければ何も出来ないのでインストールも出来ません。

まずは権限を与えましょう。

OAuth & Permissions を選択
Add an OAuth Scope を選択してScopes(権限の範囲)を追加

今回の機能で必要な権限ですが、

  • メッセージを投稿する権限
  • メッセージを読み込む権限
  • スタンプを押す権限

が必要です。

これらの権限は、今回使用するSlackAPIのドキュメントから確認が出来ます。

参考として chat.postMessage の権限は以下の場所に書いています。

これらを確認して以下のように必要な権限を設定します

SlackAppをインストール

設定を行ったらSlackAppをWorkspaceにインストールします。

念の為ですが、Workspaceとは会社や団体単位で登録される場所です。

つまりインストールされるとWorkspaceにいるメンバー全員に対して使えるようになるということなのでご留意ください!

Install App to Workspaceを選択

インストールの方法はInstall Appを選択してInstall App tpp to Workspaceを選択し、その後の承認画面で承認をすればインストールされます。

インストールされるとOAuth Access Tokenが発行されます。

このアクセストークンを使用することで、先程許可をしたScopeの範囲でAPIを実行することが出来るようになります。

APIを実行する

(任意)testページで実験

初めて使うAPIの場合は一度testページから実行してみることをオススメします。

testで実行するメリットは以下の通りです。

  • 手軽にパラメータを設定して実行することが出来る
  • 結果を実装する前に確認することができる
  • 他の処理がない、素の状態での動作確認が出来る

どう動かすかが分からないものを実装に移すことは、想定外の不具合を行ってしまうリスクや、無駄な実装をしてしまうリスクがあります。

まずは一度どのような挙動になるのかをtestページから確認してみましょう。

外部サーバーからAPIを実行する

いよいよSlackの環境以外からAPIを実行します。

ここからは各種環境に応じて実装を行ってください。

今回はコードを書かずにAPIなどを実行できる Integromat を使用して構築していきます。

メッセージを投稿する

メッセージを取得する

※ 画像には載せられなかったのですが、『Parse response』にチェックを入れています

メッセージにスタンプを付ける

2. data: messages[1]: tsとありますが、このデータは一度前の処理を実行すると取れるようになります。

これらを実行すると以下のようになります

メッセージを投稿して、(投稿を取得して、)Slackのスタンプが付いているかと思います!

このようにサーバー環境で特定のAPIを実行することでSlackに投稿や編集を行っていきます。

今回紹介したIntegromatの具体的な使用方法に関しては過去の記事に書いていますので参考にしていただけると!

まとめ

今回はSlackBot(正確にはSlackアプリ)の構築方法を解説しました。

通常使用する上ではあまり触らないSlackアプリの構築方法や、トークンやパラメータ周りをどう設定してAPIを実行するかが少しでも理解していただけたら幸いです。

まとめになりますが、

  • SlackBotを作る時は、SlackAppを作る
  • やりたいことに応じたSlackAPIを調べて、必要な権限をSlackAppに付与する
  • Workspaceにインストールをしてトークンを取得する
  • 各種サーバーから取得したトークンを使ってAPIを実行する

になります。

ここまで読んで頂きありがとうございました!

コメント

タイトルとURLをコピーしました