ボットを Slack に接続する
この記事の対象: SDK v4
Slack アプリを介して複数のユーザーと通信できるように、ボットを構成できます。 この記事では、Slack を使用して Slack アプリを作成し、ボットを Azure の Slack アプリに接続し、Slack でボットをテストする方法について説明します。
この記事では、Azure portal でボットに Slack チャンネルを追加する方法について説明します。 カスタム チャンネル アダプターの使用方法については、「追加情報」を参照してください。
前提条件
- Azure サブスクリプション。 まだお持ちでない場合は、開始する前に無料アカウントを作成してください。
- Slack に接続する Azure に発行されたボット。
- https://api.slack.com/apps でアプリケーションを作成、管理するのに十分なアクセス許可で Slack ワークスペースにアクセスします。 Slack 環境へのアクセス権がない場合は、ワークスペースを作成できます。
Slack でアプリを作成する
最初に Slack でアプリケーションを作成します。このアプリケーションは、Azure でボットの Slack チャンネルを構成するために必要な情報を生成します。
- [アプリ] パネルに移動し、Slack アカウントにサインインします。
- これが初めてのアプリケーションの場合は、[新しいアプリの作成] または [アプリの作成] を選択します。
- [アプリの作成] ページで、[最初から] を選択します。
- [アプリの名付けとワークプレイスの選択] ページで、[アプリ名] に Slack アプリケーションの名前を入力します。
- [アプリを開発するワークスペースの選択] で、アプリのワークスペースを選択します。
- Slack API の使用条件を確認して同意します。
- [Create app](アプリの作成) を選択します。
新しいリダイレクト URL を追加する
アプリが作成されたら、リダイレクト URL をアプリに追加します。
[OAuth とアクセス許可] を選択します。
結果のウィンドウの [リダイレクト URL] で、[新しいリダイレクト URL の追加] を選択します。
入力ボックスに、次のいずれかのリダイレクト URL を入力し、[追加] を選択します。
- グローバル ボットの場合は、「
https://slack.botframework.com
」と入力します。 - リージョン ボットの場合は、選択したリージョンに応じて次の URL を入力します。
リージョン リダイレクト URL ヨーロッパ https://europe.slack.botframework.com インド https://india.slack.botframework.com - グローバル ボットの場合は、「
[Save URLs (URLの保存)] を選択します。
ボットのイベントをサブスクライブする
リダイレクト URL を追加したら、アプリをボット イベントにサブスクライブして、指定した URL で Slack にユーザー アクティビティについてボットに通知します。 ボットが Slack で使用する機能に基づいてイベントをサブスクライブします。
[イベント サブスクリプション] を選びます。
結果のウィンドウで、[イベントの有効化] を [オン] に切り替えます。
[要求 URL] には、次のいずれかの要求 URL を入力します。そこでは、
{bot-name}
は中かっこ無しのAzure Bot リソースの表示名です。- グローバル ボットの場合は、「
https://slack.botframework.com/api/Events/{bot-name}
」と入力します。 - リージョン ボットの場合は、選択したリージョンに応じて次の URL を入力します。
リージョン 要求 URL ヨーロッパ https://europe.slack.botframework.com/api/Events/{bot-name}
インド https://india.slack.botframework.com/api/Events/{bot-name}
- グローバル ボットの場合は、「
[ボット イベントのサブスクライブ] で、[ボット ユーザー イベントの追加] を選択し、イベントをサブスクライブします。 次に例を示します。
member_joined_channel
member_left_channel
message.channels
message.groups
message.im
message.mpim
[変更の保存] を選択します。
ユーザーによるボットへのメッセージ送信を有効にする
ボット イベントをサブスクライブしたら、ユーザーがボットにメッセージを送信できるようにします。
- [アプリ ホーム] を選択します。
- 結果のウィンドウの [メッセージ タブ] の [タブの表示] セクションで、[ユーザーがメッセージ タブからスラッシュ コマンドとメッセージを送信できるようにする] を有効にします。
対話型メッセージを追加して構成する
必要に応じて、対話型メッセージを有効にします。
[インタラクティビティとショートカット]を選択します。
要求 URL の場合:
- グローバル ボットの場合は、「
https://slack.botframework.com/api/Actions
」と入力します。 - リージョン ボットの場合は、選択したリージョンに応じて次の URL を入力します。
リージョン 要求 URL ヨーロッパ https://europe.slack.botframework.com/Actions
インド https://india.slack.botframework.com/Actions
- グローバル ボットの場合は、「
[変更の保存] を選択します。
アプリ情報をコピーする
Slack チャンネルをボットに追加するには、次の情報が必要です。 アプリの資格情報は常にコピーして安全な場所に保存します。
- [基本情報] を選択する
- 結果のウィンドウの [アプリの資格情報] で、[クライアント ID]、[クライアント シークレット]、および [署名シークレット] を見つけます。
- 次に、[OAuth とアクセス許可] を選択します。
- 結果のウィンドウで、[スコープ] セクションを見つけます。 アプリの [ボット トークン スコープ] を 記録します。
Azure のボットを構成します。
この手順を完了するには、前の手順の Slack アプリケーション資格情報が必要です。
Azure Portalを開きます。
ボットの [Azure Bot リソース] ブレードを開きます。
[Channels] を開き、[Slack] を選択します。
[Slack チャネル構成] で、前の手順でコピーした情報を入力します。
- Slack で作成したアプリケーションに必要な Slack 資格情報を入力します。
- 必要に応じて、Slack ユーザーがボットを追加した後にリダイレクトされる [ランディング ページ URL] を指定します。
- [OAuth とアクセス許可のリダイレクト URL] と [イベント サブスクリプション要求 URL] の値は、Slack で入力した値と一致して [リダイレクト URL を追加 ]し、[ボット イベントをサブスクライブする] 必要があります。
適用を選択します。
Slack アプリのインストールを完了するために、Slack にリダイレクトされます。
- 要求されたアクセス許可が正しく見えた場合は、[許可] を選択します。
現在ボットが、Slack のユーザーと通信するように構成されました。 ワークスペース内のユーザーは、Slack アプリを使用してボットと対話できるようになりました。
Slack でアプリケーションをテストする
- アプリをインストールした Slack ワークスペースにサインインします。
- [アプリ] で、アプリを選択します。
- 結果のウィンドウで、アプリケーションにメッセージを送信します。
追加情報
Note
2020 年 6 月の時点で Slack チャンネルでは Slack V2 アクセス許可スコープがサポートされています。これにより、ボットはその機能とアクセス許可をより細かく指定できます。 新しく構成されたすべての Slack チャンネルでは、V2 スコープが使用されます。 ボットを V2 スコープに切り替えるには、Azure portal の [チャンネル] ブレードで Slack チャンネル構成を削除して再作成します。
ボットの Slack サポートの詳細については、Slack API のドキュメントを参照してください。
Slack アダプターを使用してボットを Slack に接続する
ボットを Slack に接続するために Azure AI Bot Service で使用できるチャンネルと同様に、Bot Builder Community リポジトリ では Slack 用のカスタム チャンネル アダプターを定義します。
- C# アダプターの詳細については、「.NET コミュニティ リポジトリのアダプター セクション」を参照してください。
- JavaScript アダプターの詳細については、「JavaScript コミュニティ リポジトリのアダプター セクション」を参照してください。