- Slack APIダッシュボード内で最小限のSlackアプリケーションを作成します。
- ユーザーがチャンネルに参加したりチャンネルから退出したりするたびにBoxのアプリケーションに通知が送信されるようSlackアプリケーションを構成し、BoxのコードでBoxグループを更新できるようにします。
- Boxのファイルやフォルダをチャンネル内のすべてのユーザーと共有できるようにする
/boxaddスラッシュコマンドを構成します。
最小限のSlackアプリの作成
**Slackアプリのページ**に移動し、[Create an App (アプリの作成)] をクリックします。[App Name (アプリ名)] を追加し、ボットの展開先となる [Development Slack Workspace (開発Slackワークスペース)] をドロップダウンリストから選択し、[Create App (アプリの作成)] をクリックします。
Slackアプリのイベントリスナーの構成
Slackアプリ用のイベントリスナーを設定すると、チャンネル内のイベントを監視できます。このボットでは、Box内で操作を実行するために、3つのSlackイベントを監視します。bot_added: ボットは、最初にチャンネルに追加されたときに、チャンネル内の全ユーザーのリストを取得し、取得したユーザーのBoxグループを作成します。このグループは、スラッシュコマンドで共有される任意のコンテンツにそのグループを追加するために後で使用できます。member_joined_channel: 新しいユーザーは、Slackチャンネルに参加したときにBoxグループに追加されます。member_left_channel: ユーザーはSlackチャンネルから退出したときや削除されたときに、Boxグループから削除されます。
- [Enable Events (イベントの有効化)] を [On (オン)] に切り替えます。
- [Request URL (リクエストURL)] で、上記のコードを展開した公開URLを追加し、
{YOUR_APP_DOMAIN}/event(https://myapp.com/eventなど) でリッスンしていることに注意します。URLを追加し、フィールドの外をクリックすると、Slackはすぐに、上記でコードをホストしていたURLにチャレンジを送信します。コードが正しく応答した場合は、[Request URL (リクエストURL)] ヘッダーの横に緑色で確認済みであることが表示されます。
![Slackの [Event Subscriptions (イベントサブスクリプション)] の有効化](https://mintcdn.com/box/jPy1E1s_P1x3lZ7z/ja/guides/collaborations/connect-slack-to-group-collabs/img/slack_1_create_event_sub.png?fit=max&auto=format&n=jPy1E1s_P1x3lZ7z&q=85&s=3df122a20fbad1adc6300392eca2c698)
- [Subscribe to bot events (Bot Eventの購読)] セクションを展開し、[Add Bot User Event (Bot User Eventの追加)] ボタンをクリックします。
- ボットが登録されているイベントに
member_joined_channelとmember_left_channelを追加します。これらは、新しいユーザーがチャンネルに追加されたときにイベントを送信します。 - ページの下部にある [Save Changes (変更を保存)] ボタンをクリックします。
Slackアプリのスラッシュコマンドの構成
Slackチャンネルの各ユーザーにBox内のファイルやフォルダへのアクセス権限を付与するために、Slackの**「スラッシュコマンド」**を使用できます。スラッシュコマンドにより、チャンネル内のどのユーザーも、Box内に所有しているコンテンツをチャンネルの他のユーザーと共有できます。 このコマンドを使用すると、チャンネルのメンバーはチャネルに/boxadd [file / folder] [id] (boxadd file 1459732312など) を入力してファイル/フォルダをそのチャンネルのすべてのユーザーと共有できます。そのために、ファイルはそのチャンネル内に存在するBoxグループのユーザーと自動的にコラボレーションされます。
作成したアプリケーションの [Basic Information (基本情報)] タブの [Add features and functionality (機能の追加)] で [Slash Commands (スラッシュコマンド)] というタイトルのボタンをクリックします。
表示されるページで、[Create New Command (新しいコマンドの作成)] をクリックして、以下の項目を入力します。
- Command (コマンド): チャンネルユーザーがBoxのファイル/フォルダIDをチャンネルと共有するために使用するコマンドです。このクイックスタートでは、
/boxaddを使用します。 - Request URL (リクエストURL): Slackボットでスラッシュコマンドをリッスンし、そのコマンドに応答するURL。このクイックスタートでは、前述のアプリのイベントリスナーのセクションで使用したのと同じイベントURLを使用します。
- Short Description (簡単な説明): スラッシュコマンドで実行する処理の説明。
- Usage Hint (使用方法のヒント): このコマンドに渡すことができる追加のパラメータ。この例では、Boxのファイル/フォルダIDとコンテンツのタイプを使用します。

その他のスコープの追加
Slackからアプリケーションに送信されるスラッシュコマンドまたは通知には、操作を行ったユーザーまたは操作の影響を受けたユーザーに関連するSlackユーザーIDが含まれます。そのIDをBoxユーザーに変換するには、Slackユーザーのメールアドレスを取得する必要があります。取得したメールアドレスを使用して、そのSlackユーザーを対応するBoxユーザーに関連付けることができます。この操作を行うには、Slackアプリケーションの構成で2つのスコープを追加する必要があります。 Slackアプリケーションの構成で、左側のメニューにある [OAuth & Permissions (OAuthと権限)] をクリックし、以下の操作を行います。- [Scopes (スコープ)] セクションまで下にスクロールします。
- [Bot Token Scopes (ボットトークンのスコープ)] で [Add an OAuth Scope (OAuthスコープの追加)] ボタンをクリックします。
users:readとusers:read.emailを検索して追加します。
Slackワークスペースへのボットの展開
最後に、Slackワークスペースにこのアプリケーションをインストールします。アプリの [Basic Information (基本情報)] ページで、[Install your app to your workspace (ワークスペースに自分のアプリをインストール)] セクションを展開します。![Slackの [Event Subscriptions (イベントサブスクリプション)] の有効化](https://mintcdn.com/box/jPy1E1s_P1x3lZ7z/ja/guides/collaborations/connect-slack-to-group-collabs/img/slack_5_install_workspace.png?fit=max&auto=format&n=jPy1E1s_P1x3lZ7z&q=85&s=68c12913d439d2b57ba45e044034b227)
![Slackの [Event Subscriptions (イベントサブスクリプション)] の有効化](https://mintcdn.com/box/jPy1E1s_P1x3lZ7z/ja/guides/collaborations/connect-slack-to-group-collabs/img/slack_5_install_workspace_allow.png?fit=max&auto=format&n=jPy1E1s_P1x3lZ7z&q=85&s=c064396cf6a951e7b192732d83666118)
まとめ
- Slackアプリケーションを作成しました。
- User Event通知、スラッシュコマンド、追加のスコープを構成しました。
- Slackボットをワークスペースに展開しました。
