Slackに自作のBOTを繋ぎ込んだり各種機能を拡張したいですか?
SlackBOTを作ることで、他サービスからの作業の通知を自由に設計できて生産性を上げることができます。
この記事ではSlackのカスタムBotの作成方法とおすすめのBotを解説します!
こんな人におすすめです。
- SlackBotの作り方を知りたい人
- SlackBotの作り方を読んだけど難しくてつまづいてしまった人
- おすすめのSlackBotを知りたい人
Contents
SlackBotとは?
SlackAPIを使用して以下のようなことをできるようになります。
- 特定のメッセージに自動で反応させる
- サーバーサイドで指定の処理を実行後結果をSlackに投稿
公式ではTypeScript、JAVA、Javascript、Pythonでのサンプルコードが紹介されていますが、REST APIが準備されているため、実質的にはどのような言語でもSlackBotを実装することができます。
公式ドキュメントに関してはこちらをご覧ください。
SlackBotの追加方法(自作Bot)
SlackにBot(Slackbot)を追加する手順は以下の通りです。なお、この手順は最新の情報に基づいていますが、Slackのインターフェースは頻繁に更新されるため、若干の違いが生じる場合があります。
自作するには5STEP必要です。
- SlackApp(プロジェクト)を管理画面上で作成する
- Botに権限を付与してトークンを発行する
- BOTをチャンネルに追加する
- サーバー環境を構築してリリースする
細かい設定は後回しにして一旦BOTを作りたいという人は4のSTEPは飛ばしても大丈夫です。
SlackApp(プロジェクト)を管理画面上で作成する
- step1アプリを新規作成する
Slack APIのページにアクセスして、Create New Appボタンをクリックします。
- step2スクラッチで作成を選ぶ
「From scratch」または「From an app manifest」を選択します。
基本的に「From scratch」を選択しましょう。
- step3導入するワークスペースを選ぶ
アプリ名と導入するワークスペースを入力してCreate Appを押します。
- step4管理画面が表示される
Appの管理画面が表示されたらOKです。
管理画面を下にスクロールすると、DisplayInformationというタブがあります。
Botの名前やアイコン等のカスタマイズをしたい場合はこちらを変更しましょう。
Botに権限を付与してトークンを発行する
- step1権限付与画面に行く
作成したアプリのダッシュボードで「OAuth & Permissions」セクションを選択します。「Scopes」セクションに移動し、「Bot Token Scopes」を見つけます。
- step2権限を付与する
BotTokenScopesから「Add an OAuth Scope」を押します。
必要な権限を追加します。
最低一つ権限を与えないとワークスペースへのインストールができないため、何かしらの権限を付与します。
開発中に必要な権限は変わってくるので、最初はchat:write,chat:write.customize等無駄にならなさそうな権限を付与しておくと良いですよ。
- step3ワークスペースに追加する
スコープを追加したら「Install to {自分のWorkspace名}」ボタンをクリックし、ワークスペースにインストールします。
権限確認が出てくるので、許可するを押します。
- step4表示されたトークンを控えて完了
xoxb-から始まるトークンが表示されるので、控えておきましょう。
通知を入れるチャンネルにBOTを追加する
BOTがワークスペースに追加されたあと、どこのチャンネルに通知を入れるかを設定する必要があります。
BOTを入れたいチャンネルの右上の3点リード>設定を編集するを選びます。
インテグレーションのタブを選んでアプリを追加するを押します。
入れたいアプリを選んで追加を押します。
サーバー環境を構築してリリースする
あとはサーバーを構築してAPI経由でリクエストを投げれば大丈夫です。
トークンが動作するかどうかは以下にcurlでのサンプルコードを置いておくので、自分のトークンとチャンネル名の箇所(置いているコードは#generalにしています)を差し替えて試してみてください。
注意事項としては、チャンネルには事前にBOTが追加されている必要があります。
まだ追加していない人は上の段落の箇所をご確認ください!
1 |
curl -X POST -H 'Authorization: Bearer xoxb-{自分のトークン}' https://slack.com/api/chat.postMessage -H 'Content-type: application/json' --data '{ "channel":"#general", "text":"this is test."}' |
これで、SlackにBotを追加し、基本的な設定や操作を行う手順が完了です。さらに高度な機能を追加する場合は、Slack APIドキュメントを参照してください。
また、いろんなサンプルコードが欲しい場合は多くのサンプルコードがこちらに公開されています。
おすすめのSlackBot
SlackのBotには自作で作るものの他に各サービスが提供するものがあります!
いくつかの推奨されるSlack用Botをご紹介します:
Bot | 解説 |
Trello | プロジェクト管理ツールであるTrelloと連携して、タスクやカードの更新通知をSlackに送ることができます。 |
Google Calendar | Googleカレンダーのイベント通知やリマインダーをSlackに送ることができます。 |
Zapier | 数多くのアプリケーションと連携をサポートし、自動化ワークフローを構築できる非常に強力なツールです。 |
Polly | アンケートやフィードバックを簡単に作成・送信できるツールです。 |
GitHub | リポジトリの更新情報やPull Request、Issueの通知をSlackで受け取れます。 |
Jira Cloud | プロジェクト管理ツールのJiraと連携し、タスクやバグの進捗状況を共有できます。 |
Giphy | 簡単にGIFを検索して共有するためのエンターテイメント向けのBotです。 |
これらのBotはすべてSlackのアプリストアや各サービスの公式サイトから簡単に追加・設定ができます。各Botの機能や利用パターンに応じて、最適なBotを選択すると良いですよ。