Http クライアントを使用して Box で動作
このサンプルでは、akaBot の Http Client アクティビティと Box クライアント認証情報
付与 (CCG) 認証を使用して、既存の Box マネージド ユーザーのルート フォルダーで動作します。
コンテンツをリスト表示し、フォルダーを作成して名前変更し、ファイルをアップロードおよび更新し、
ファイルをダウンロードして、検査のため一時停止した後、テスト データを削除します。
前提条件
- Box Developer Console へのアクセス権がある Box 開発者または エンタープライズ アカウント。
- アプリケーションを認可できる Box 管理者。
- クライアント シークレットを表示またはコピーするアカウントで多要素認証 (2FA) が有効になっていること。
- Core アクティビティがインストールされている akaBot Studio。
新しいアプリを作成
- Box にサインインして、 Box Developer Console を開きます。
- Platform Apps を選択してから、New App を選択します。
- アプリケーション名を入力します。例えば、
DemoApp。 - アプリケーション タイプとして Server を選択します。

デフォルト アカウントへのアクセスを構成
アプリケーションの Configuration タブを開き、以下の設定を構成します。
- App Access Level で、App + Enterprise Access を選択します。これにより、 アプリケーションはサービス アカウントだけでなく、既存のマネージド ユーザーにアクセスできます。
- Application Scopes で、以下を有効にします。
- Read all files and folders stored in Box。
- Write all files and folders stored in Box。
- Additional Configuration で、
Generate User Access Tokens を有効にします。これは、ワークフローが
box_subject_type=userを送信し、マネージド ユーザーとして認証するために必要です。 - Save ボタンをクリックします。



構成ファイルを構築
アプリケーションの Configuration タブで、App Details ペインを探します。
- Access グループの下で Client ID をコピーします。これが
clientIDになります。 - Fetch Secret ボタンをクリックして Client Secret を取得します。Box は 2FA 検証が必要な場合があります。これが
clientSecretになります。 - Properties グループの下で Enterprise ID をコピーします。これが
enterpriseIDになります。
上記の値を使用して構成ファイル HttpBoxDefaultAccount/data/box-config.json を更新します。
{
"boxAppSettings": {
"clientID": "PUT_YOUR_CLIENT_ID_HERE",
"clientSecret": "PUT_YOUR_CLIENT_SECRET_HERE"
},
"enterpriseID": "PUT_YOUR_ENTERPRISE_ID_HERE"
}

- Properties グループの下で User ID をコピーします。
akaBot Studio で UserId 入力を設定するか、Main.xaml のデフォルト値を更新します。

- 認可 (必要に応じて)
サーバー認証された Box Platform アプリは、Box API を呼び出す前に認可される必要があります。

実行
akaBot Studio で Main.xaml を開いて実行します。
ワークフローはテスト コンテンツを作成、アップロード、更新、ダウンロードした後、メッセージ ボックスを表示します。 生成されたフォルダーを Box で検査してから、OK を選択して、ワークフローがダウンロードされたローカル ファイルを削除し、 リモート テスト ファイルとフォルダーを Box ゴミ箱に移動できるようにします。
ここをクリック して完全なワークフローをダウンロードします。

操作
ワークフローは次のことを実行します。
data/box-config.jsonを 1 回読み取って、それをJObjectに逆シリアル化します。box_subject_type=userでマネージド ユーザー アクセス トークンを要求します。GET /users/meを呼び出して、返される ID がUserIdと等しいことを確認します。- ユーザーのルート フォルダーをリスト表示します。
- フォルダーを作成、読み取り、名前変更します。
- 2 つのファイルをアップロードし、フォルダーをリスト表示し、ファイル情報を読み取り、1 つのファイルの名前を変更してダウンロードします。
- ユーザーが Box でテスト コンテンツを検査できるようにしばらく一時停止します。
- ローカル ダウンロード、2 番目のリモート ファイル、テスト フォルダーを再帰的に削除します。Box API 削除は、リモート項目をゴミ箱に移動します。
Activity Core 3.4 の OAuth2Token プロパティは、OAuth 認可スキームを送信します。Box
は Bearer を必要とするため、このワークフローは明示的に
Authorization: Bearer <token> を各 API リクエストの Headers 辞書で提供します。
トラブルシューティング
invalid_client: Client ID と Client Secret を確認し、同じアプリケーションに属していることを確認します。invalid_grant: App + Enterprise Access、Generate User Access Tokens、数値のUserId、およびアプリケーション認可を確認します。403 Forbidden: 必要な読み取り/書き込みスコープを確認して、設定を変更した後にアプリを再認可します。- ワークフローが間違ったアカウントにアクセスしている:
UserIdを確認します。enterpriseIDを変更しても、このサンプルではマネージド ユーザーは選択されません。