メインコンテンツへスキップ
このガイドの最初の手順では、Slackアプリケーションを作成して構成します。このSlackアプリケーションは、SlackチャンネルでUser Eventをリッスンするボットとして機能し、そのチャンネルでユーザーが入力したスラッシュコマンドに応答します。これにより、ユーザーはBox上のファイルやフォルダをグループと共有できます。 このセクションでは、以下の手順を説明します。
  • Slack APIダッシュボード内で最小限のSlackアプリケーションを作成します。
  • ユーザーがチャンネルに参加したりチャンネルから退出したりするたびにBoxのアプリケーションに通知が送信されるようSlackアプリケーションを構成し、BoxのコードでBoxグループを更新できるようにします。
  • Boxのファイルやフォルダをチャンネル内のすべてのユーザーと共有できるようにする/boxaddスラッシュコマンドを構成します。

最小限のSlackアプリの作成

**Slackアプリのページ**に移動し、[Create an App (アプリの作成)] をクリックします。[App Name (アプリ名)] を追加し、ボットの展開先となる [Development Slack Workspace (開発Slackワークスペース)] をドロップダウンリストから選択し、[Create App (アプリの作成)] をクリックします。
Slackアプリの作成
作成後、アプリケーションの基本情報セクションにリダイレクトされます。下部の [Display Information (情報の表示)] セクションで、作成したアプリのアイコンと説明を調整して、ワークスペースでアプリケーションをカスタマイズできます。

Slackアプリのイベントリスナーの構成

Slackアプリ用のイベントリスナーを設定すると、チャンネル内のイベントを監視できます。このボットでは、Box内で操作を実行するために、3つのSlackイベントを監視します。
  • bot_added: ボットは、最初にチャンネルに追加されたときに、チャンネル内の全ユーザーのリストを取得し、取得したユーザーのBoxグループを作成します。このグループは、スラッシュコマンドで共有される任意のコンテンツにそのグループを追加するために後で使用できます。
  • member_joined_channel: 新しいユーザーは、Slackチャンネルに参加したときにBoxグループに追加されます。
  • member_left_channel: ユーザーはSlackチャンネルから退出したときや削除されたときに、Boxグループから削除されます。
このようなSlackのイベントペイロードの送信先となる通知URLを設定するために、Slackでは確認手順が必要になります。ボットアプリケーションコードのイベントリスナーURLを設定すると、Slackは即座にそのURLにチャレンジを送信し、そのURLが有効かどうかを確認します。これは、次のようなペイロードを含むHTTP POSTです。
{
  "token": "Jhj5dZrVaK7ZwHHjRyZWjbDl",
  "challenge": "3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P",
  "type": "url_verification"
}

イベントリスナーのURLを設定するには、この手順の間に、設定するURLが、チャレンジ値を含む確認用ペイロードを使用してSlackに応答する必要があります。ペイロードは次のようになります。
HTTP 200 OK Content-type: application/json {"challenge":"3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P"}

このためには、チャレンジイベントに応答する少量のコードを展開します。最初に、以下の中からお好みの言語/フレームワークを選択してください。
これで、イベントURLの追加時にSlackチャレンジに応答するコードを準備できたので、これをSlackアプリケーション内で構成できます。 Slackアプリケーションの [Basic Information (基本情報)] タブの [Add features and functionality (機能の追加)] で、[Event Subscriptions (イベントサブスクリプション)] というタイトルのボタンをクリックし、以下の操作を行います。
  • [Enable Events (イベントの有効化)] を [On (オン)] に切り替えます。
  • [Request URL (リクエストURL)] で、上記のコードを展開した公開URLを追加し、{YOUR_APP_DOMAIN}/event (https://myapp.com/eventなど) でリッスンしていることに注意します。URLを追加し、フィールドの外をクリックすると、Slackはすぐに、上記でコードをホストしていたURLにチャレンジを送信します。コードが正しく応答した場合は、[Request URL (リクエストURL)] ヘッダーの横に緑色で確認済みであることが表示されます。
Slackの [Event Subscriptions (イベントサブスクリプション)] の有効化
  • [Subscribe to bot events (Bot Eventの購読)] セクションを展開し、[Add Bot User Event (Bot User Eventの追加)] ボタンをクリックします。
  • ボットが登録されているイベントにmember_joined_channelmember_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のスラッシュコマンドの作成
[Save (保存)] をクリックして、このコマンドをSlackアプリに追加します。

その他のスコープの追加

Slackからアプリケーションに送信されるスラッシュコマンドまたは通知には、操作を行ったユーザーまたは操作の影響を受けたユーザーに関連するSlackユーザーIDが含まれます。そのIDをBoxユーザーに変換するには、Slackユーザーのメールアドレスを取得する必要があります。取得したメールアドレスを使用して、そのSlackユーザーを対応するBoxユーザーに関連付けることができます。この操作を行うには、Slackアプリケーションの構成で2つのスコープを追加する必要があります。 Slackアプリケーションの構成で、左側のメニューにある [OAuth & Permissions (OAuthと権限)] をクリックし、以下の操作を行います。
  • [Scopes (スコープ)] セクションまで下にスクロールします。
  • [Bot Token Scopes (ボットトークンのスコープ)] で [Add an OAuth Scope (OAuthスコープの追加)] ボタンをクリックします。
  • users:readusers:read.emailを検索して追加します。

Slackワークスペースへのボットの展開

最後に、Slackワークスペースにこのアプリケーションをインストールします。アプリの [Basic Information (基本情報)] ページで、[Install your app to your workspace (ワークスペースに自分のアプリをインストール)] セクションを展開します。
Slackの [Event Subscriptions (イベントサブスクリプション)] の有効化
[Install App to Workspace (ワークスペースにアプリをインストール)] ボタンをクリックします。
Slackの [Event Subscriptions (イベントサブスクリプション)] の有効化
[Allow (許可)] ボタンをクリックすると、成功を示すメッセージが表示されます。これでワークスペース内にボットがインストールされました。

まとめ

  • Slackアプリケーションを作成しました。
  • User Event通知、スラッシュコマンド、追加のスコープを構成しました。
  • Slackボットをワークスペースに展開しました。