セキュリティチームのぐっちーです。Box Advent Calendar 2023の12月24日が空いていたので、小ネタを投稿します。以前、Slackで共有するファイルを自動でBoxへ格納する「Box for Slack: Custom Files Store(SlackのコンテンツレイヤーとしてBoxを使用する)」1についてのブログを書きましたが、それが少し進化したよという小ネタを投下したいと思います。
- 本ブログの内容は2023年12月24日時点までの情報を元に作成しております。
「Box for Slack: Custom Files Store」のツリー構造
「Box for Slack: Custom Files Store」のツリー構造はやや複雑です。下記の図のように、かなり深い階層に分かれて保管されています。また、ユーザーはチャンネルごとにコラボレーターとして招待されるため、ファイルが散財しているように見えるという特性があります。
特定のフォルダを指定できるように!
以前までのツリー構造だと、ユースケースによっては若干使い勝手が悪かったのですが、いつかのアップデートで特定のフォルダを指定できるようになりました。2
Box 開発者コンソールでアプリ作成
Box 開発者コンソールでJWSのアプリ作成します。その際、アプリケーションのスコープとしては[Enterpriseのプロパティを管理する]の権限をつけてあげることが必要です。
Boxの格納場所に指定したいフォルダに共同所有者の権限をつける
「Box As File Storage」のAutomation Userに対して、Boxの格納場所に指定したいフォルダの共同所有者の権限をつける必要があります。ただ、「Box As File Storage」のユーザーのメールアドレスは管理コンソールからは見切れてしまっているので、「Box APIを使って設定」を先に実行し、そのエラーメッセージに含まれるメールアドレスを指定してあげると良いと思います。
Box APIを使って設定
設定方法としては、Box APIを使ってSlackチャンネルとBoxをマッピングしてあげる形となります。SlackのワークスペースID、チャンネルID、Boxの格納場所に指定したいフォルダのIDを指定して、以下のようにリクエストを飛ばします。
curl -X -L POST "https://api.box.com/2.0/integration_mappings/slack" \
-H "authorization: Bearer <ACCESS_TOKEN>" \
-H 'content-type: application/json' \
-d '{
"partner_item": {
"id": "<チャンネルID>",
"type": "channel",
"slack_workspace_id": "<ワークスペースID>"
},
"box_item": {
"id": "<設定したいフォルダのID>",
"type": "folder"
}
}'
Boxのフォルダ構造とSlackチャンネルのプレフィックスを一緒にするという使い方ができそう?
Boxのフォルダ構造とSlackチャンネルのプレフィックスを一緒にするという使い方ができそうというのがこの機能の良さそうなところです。例えば、プロジェクト資料フォルダというフォルダを作っておき、そのフォルダの配下に「Project A」「Project B」というチャンネルを作っておき、Slackにも同じように「pj-A」「pj-B」というチャンネルを作成して、そこと同期するような使い方です。ただ、手で設定していたら管理者が死んでしまいそうなので、一定の自動化が前提ではないと大変そうです。
注意点は変わらず
Slack Connectのチャンネルでは利用できない等の注意点は依然と変わっておりません。詳細は「Slackで共有するファイルを自動でBoxへ格納!Box for Slack: Custom Files Storeを検証してみた」をご確認いただけたら幸いです。
おわりに
SlackとBoxに関わらず、Boxは様々なクラウドサービスと連携してデータを統制することができる点が素晴らしい点です。今後も、Boxとさまざまなクラウドサービスを組み合わせた使い方を追求していきたいと思います。