UiPath.Box.Activities（Box API）の使用準備

この記事はUiPathブログ発信チャレンジ2022サマーの29日目の記事です。

https://note.com/shumpei_w/n/n19383ce5abb1

昨日の記事は以下です。
・[@shuy](https://twitter.com/shuy_oooo)さんの[記事](https://qiita.com/shuy/items/b85fca01daa6d76931a4)
・[@rei](https://twitter.com/nanohana_rpa)さんの[記事](https://note.com/ss_uipath/n/n93b41f751b49)
明日は[@W_Wacky20](https://mobile.twitter.com/w_wacky20)さんの記事です。


# 概要
BOXのアイテム操作（ダウンロード・アップロード・フォルダ作成・フォルダ内アイテム取得など）には[UiPath.Box.Activities（Box API）](https://marketplace.uipath.com/listings/box)を使用するのが便利です。
UiPath.Box.Activitiesを使用するためには以下の2つのステップで準備する必要があります。

１. BOX側作業：カスタムアプリ（JWT）の作成と承認
２. UiPath側作業：BoxパッケージのインストールとBOXスコープでの接続

[UiPath公式ガイド](https://docs.uipath.com/activities/docs/box-about)にも接続方法は載っていますが、記載内容だけではうまくいかない箇所があったので以下で解説します。

# １. BOX側作業：カスタムアプリ（JWT）の作成と承認
UiPathとBOXの接続をするためには、BOX側でアプリを作成します。
このステップはBOX管理者権限の承認が必要になりますので、開発側アカウントに管理者権限があるか、または管理者権限があるアカウントと連携が取れることを事前に確認してください。

## (1)	開発者コンソソールにアクセス
BOXへログインし、下記赤枠から開発者コンソソール画面にアクセスする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/e147f628-ce20-2b77-1793-3c0cda2b00b4.png)
直接アクセスする場合：　https://app.box.com/developers/console

## (2)カスタムアプリを作成
①マイアプリ>アプリの新規作成>カスタムアプリを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/d44ce510-4e7b-f56d-a2a8-d4317cd0ed60.png)

②[サーバー認証（JWT使用）]を選択し、任意のアプリ名を入力して、[アプリの作成]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/ffed2120-5229-0fa0-bbfe-011afd60f2dd.png)


※BOX内で使うだけのアプリ名です。後から変更可。
　今回は「BOX API評価テスト」としました

## (3)カスタムアプリの各種設定
①構成>アプリアクセスレベルから、[アプリ+Enterpriseアクセス]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/02d18a4e-4ddd-dd7b-9cff-53817e3e59ae.png)
②構成>アプリケーションスコープから、[Boxに格納されている全てのファイルとフォルダへ書き込み]にチェックを入れる
（[Boxに格納されている全てのファイルとフォルダの読み取り]にも初期設定でチェックが入っているはずですが、仮に外れていたとしても、上記操作によりこちらに必ずチェックが入ります）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/9757747c-d3ee-5311-f897-6748a46166de.png)
②構成>高度な機能で以下２つの項目のチェックをONにして、右上の[変更を保存]をクリック
[as-userヘッダーを使用してAPI呼び出しを行う]
[ユーザーアクセストークンを生成する]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/2bee603f-12a3-f636-7dcc-4c8350fea41d.png)
③承認> Enterpriseへのアクセス権限に対する承認を得るためにアプリを送信 から[確認して送信]をクリック→ポップアップされた画面の[アプリの説明]に任意の文字を入れ、[送信]をクリック
→BOX管理者アドレスにメールが送信されます
④（BOX管理者向け手順）③にて送信されたメールの[アプリの詳細を確認]をクリックし、開いた画面で[承認]する
（メール画面）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/0a2af1b0-c29a-df6b-ba5b-3bba8fa6385f.png)
（メールリンク先の承認画面）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/deab613c-ba05-f8ed-eefa-087ddb3c5f4f.png)
※メールが届かなかった場合はBOXログイン後、「管理コンソール」をクリックして、管理者向けページに移動し、アプリ>カスタムアプリマネージャー>該当のアプリ名にて、上記画面に移動可能

## (4）JWT認証用Configファイル発行
構成>公開キーの追加と管理で[公開/秘密キーペアを生成]をクリック
→.json形式のファイルがダウンロードされる。こちらはUiPathのBOX接続に使用するファイルになるので、該当UiPathプログラムからアクセスできる場所に保存する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/c9c1e85a-b9f0-ba0f-48bd-bbc07ec21063.png)



# ２. UiPath側作業：BoxパッケージのインストールとBOXスコープでの接続

## (1）UiPath.Box.Activitiesのインストール
①「パッケージを管理」から[UiPath.Box.Activities]をインストールして、[保存]する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/49831a2b-4b15-0f02-fca1-bb51e38dc644.png)
②各種ライセンス条項に[同意する]をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/3f4f2047-2e41-d0b3-fc5d-a5619a413fbb.png)

## (2）	BOXスコープの設定
BOXアクティビティを使用したい場所にBOXスコープを設置し、JWT Authentication＞Config File Pathに1-(4)で保存した.json形式のファイルのパスを設定する
（他の項目は設定不要）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1776370/eaeb6970-f828-af6f-82c1-03edcce75004.png)

## (3）	使用したいBOXアクティビティをBOXスコープ内に配置して使用する
アクティビティの使い方は[公式ヘルプ](https://docs.uipath.com/activities/docs/box-activities)を参照してください。