> ## Documentation Index
> Fetch the complete documentation index at: https://developer.box.com/llms.txt
> Use this file to discover all available pages before exploring further.

> Box for Salesforce開発者ツールキットのメソッドと操作に関するリファレンス。

# メソッドと操作

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

export const Link = ({href, children, className, ...props}) => {
  const localizedHref = localizeLink(href);
  return <a href={localizedHref} className={className} {...props}>
      {children}
    </a>;
};

## ツールキットの詳細

クラス名: `box.Toolkit`

## インスタンス変数

### `mostRecentError`

インスタンスメソッドの呼び出し時に発生した最新のエラーを示す文字列。

この文字列が存在しても、操作が成功しなかったことを意味するわけではありません。そのエラーが回復可能であった可能性もあります。ただし、この文字列に値がない場合は、操作が成功したことを示しています。

### `Enum CollaborationType`

[コラボレーションのタイプ][collab-type]を示す列挙型。

可能性のある値: `EDITOR`、`VIEWER`、`PREVIEWER`、`UPLOADER`、`COOWNER`、`OWNER`、`PREVIEWERUPLOADER`、`VIEWERUPLOADER`

## 静的メソッド

### `deleteServiceUserAssociation`

サービスアカウントとBox for Salesforce統合の関連付けをクリアするメソッド。間違ったサービスアカウントが使用されている場合、このメソッドを使用してアカウントを変更できます。

パラメータ:

* なし

戻り値:

* ユーザーのアカウントが存在していたが削除された場合は`true`。
* ユーザーのアカウントが何らかの理由 (存在しなかった場合を含む) で削除されなかった場合は`false`。

### `deleteUserAssociation`

| パラメータ    | 型  | 説明                  |
| -------- | -- | ------------------- |
| `userId` | id | 資格情報がクリアされるユーザーのID。 |

戻り値:

* ユーザーのアカウントが存在していたが削除された場合は`true`。
* ユーザーのアカウントが何らかの理由 (存在しなかった場合を含む) で削除されなかった場合は`false`。

## インスタンスメソッド - コンストラクタ、デストラクタ

### `box.Toolkit()`

パラメータ:

* なし

### `commitChanges`

このメソッドは`box.Toolkit()`メソッドのデストラクタとして扱います。

<Warning>
  このメソッドは重要です。すべてのフォルダ/コラボレーション操作が完了した後、毎回、例外なくこのメソッドを呼び出す必要があります。
</Warning>

Salesforceではデータベースの更新/挿入/削除の後の呼び出しは許可されないため、Toolkitクラスではすべての呼び出し操作が完了した後で挿入するオブジェクトのコレクションが保持されます。このメソッドを呼び出さない場合、このようなオブジェクトがデータベースから消去され、ユーザー/レコード/フォルダの関連付けを追跡するテーブルの同期も失われて、高度なデバッグによる修正が必要になります。

パラメータ:

* なし

戻り値:

* `Void`

### プラットフォームイベントを使用する`commitChanges`

このメソッドは`box.Toolkit()`メソッドのデストラクタとして扱います。

このメソッドは、上記の`commitChanges`とよく似ています。ただし、別のトランザクションでDMLステートメントを実行し、一部のシナリオでガバナ制限を回避するために、プラットフォームイベントを使用してデータベースに変更をコミットします。

| パラメータ              | 型         | 説明                                                |
| ------------------ | --------- | ------------------------------------------------- |
| `usePlatformEvent` | `boolean` | プラットフォームイベントを使用する場合は`true`。元のメソッドを呼び出す場合は`false`。 |

戻り値:

* `Void`

## ジェネリックメソッド

Box for Salesforce Developer Toolkitは、パラメータとして[HttpRequest][sf-httprequest]オブジェクトを受け取り、[HttpResponse][sf-httpresponse]オブジェクトを返すグローバルメソッドを提供します。このメソッドではサービスアカウントの認証の詳細情報を使用してBoxのAPIを呼び出すため、開発者は統合のビジネスロジックに集中して取り組むことができます。

### `sendRequest`

| パラメータ     | 型                             | 説明                                   |
| --------- | ----------------------------- | ------------------------------------ |
| `request` | [HttpRequest][sf-httprequest] | エンドポイントとメソッドが設定されたHttpRequestオブジェクト。 |

戻り値:

* BoxのAPIコールからのレスポンスの詳細情報が含まれた[HttpResponse][sf-httpresponse]オブジェクト。
* HttpRequestのインプットの情報が不足している場合は`Toolkit.BoxApiException`。
* サービスアカウントの認証の詳細情報を取得する際に問題が発生した場合は`null`。この場合は、`mostRecentError`を確認してください。

## ファイル操作

### `createFileFromAttachment`

<Note>
  バージョン3.46以降で使用可能です。

  Salesforceの文字列長の上限は600万文字です。base64エンコード/デコードプロセスでは文字列が膨張するため、有効なファイルサイズの上限は、同期Apexの場合は4.3MB、非同期Apexの場合は8.6MBとなっています。
</Note>

| パラメータ              | 型            | 説明                                                                                                                           |
| ------------------ | ------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| `att`              | `Attachment` | Box内のファイルに変換される添付ファイル。                                                                                                       |
| `fileNameOverride` | `string`     | 省略可 - 新しいファイルの名前。値が渡されなかった場合、添付ファイルの名前が使用されます。                                                                               |
| `folderIdOverride` | `string`     | 省略可 - この添付ファイルの配置先であるBoxフォルダID。値が渡されなかった場合、ファイルは添付ファイルの`parentId`に当たるレコードに関連付けられているフォルダに配置されます。レコード固有のフォルダが存在していない場合は作成されます。 |
| `accessToken`      | `string`     | 省略可 - `accessToken`が送信された場合は、Box APIコールにその値が使用されます。そうでない場合は、デフォルトアカウントの資格情報が使用されます。                                          |

戻り値:

* `string`。作成されたBoxファイルのIDが返されます。
* エラーが発生した場合は`null`。この場合には、`mostRecentError`を確認してください。

### `pushFileToBox`

Salesforce Filesの`ContentVersion`レコードをBoxフォルダにアップロードします。

<Warning>
  サポートされているファイルサイズは25 MB (26,214,400バイト) までです。この上限を超えているファイルはアップロードが拒否され、ファイル名とサイズを示したエラーメッセージが表示されます。
</Warning>

| パラメータ      | 型        | 必須 | 説明                                       |
| ---------- | -------- | -- | ---------------------------------------- |
| `cvId`     | `id`     | はい | アップロード対象のSalesforce `ContentVersion` ID。 |
| `folderId` | `string` | はい | ファイルのアップロード先となるBoxフォルダID。                |

戻り値:

* アップロードの詳細を含む`PartnerSyncResponse`オブジェクト。
* アップロードに失敗した場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* このメソッドは、アップロードの試行に先立ち、`ContentVersion`が存在するかどうかを検証します。
* また、サポートされていないファイルの場合に早期にエラーを出せるよう、ファイルサイズの確認もアップロード前に実施します。
* Box APIのエラーとレート制限エラーは、`mostRecentError`で確認できます。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### `createFileShareLink`

Boxファイルの共有リンクを作成します。

| パラメータ    | 型        | 必須 | 説明                   |
| -------- | -------- | -- | -------------------- |
| `fileId` | `string` | はい | 共有リンクを作成するBoxファイルID。 |

戻り値:

* `string`。共有リンクのURLが返されます。
* 共有リンクが作成されなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* 共有リンクは、デフォルトのBox権限を使用して作成されます。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### `moveFile`

Boxファイルを別のフォルダに移動します。

| パラメータ                 | 型        | 必須  | 説明                                                                            |
| --------------------- | -------- | --- | ----------------------------------------------------------------------------- |
| `fileId`              | `string` | はい  | 移動するファイルのBoxファイルID。                                                           |
| `destinationFolderId` | `string` | はい  | 移動先のフォルダのBoxフォルダID。                                                           |
| `accessToken`         | `string` | いいえ | `accessToken`を送信すると、その値がBox APIコールに使用されます。そうでない場合、デフォルトのサービスアカウント資格情報が使用されます。 |

戻り値:

* 更新後の親フォルダの情報を保持した`File`オブジェクト。
* 移動に失敗した場合には、`File`オブジェクトに`status`値が格納されています。`mostRecentError`で詳細を確認してください。

使用上の注意事項:

* `accessToken`が空であるか、`null`の場合には、このメソッドではサービスアカウント資格情報を使用します。
* 操作エラーについては、返された`File`オブジェクトの`status`値を確認してください。
* 操作に失敗した場合には、`mostRecentError`を確認してください。

## フォルダ操作

### `getRootFolderId`

パラメータ:

* なし

戻り値:

* `string`。SalesforceルートフォルダのBoxフォルダIDが返されます。

### `getObjectFolderByRecordId`

| パラメータ      | 型    | 説明                                    |
| ---------- | ---- | ------------------------------------- |
| `recordId` | `id` | ルートフォルダIDを取得する必要があるSalesforceレコードのID。 |

戻り値:

* `string`。レコードIDが渡されたオブジェクトルートフォルダのBoxフォルダIDが返されます。

### `getFolderUrl`

* このメソッドは、特定のレコードの埋め込みウィジェットURLを取得します。このため、必要に応じて独自の埋め込みロジックを使用できます。
* このメソッドではシームレスログインの設定が優先されます。このため、シームレスログインが有効になっている場合、ユーザーはURLに自動的にログインされます。

| パラメータ             | 型         | 説明                                       |
| ----------------- | --------- | ---------------------------------------- |
| `recordId`        | `id`      | ルートフォルダIDを取得する必要があるSalesforceレコードのID。    |
| `isMobileContext` | `boolean` | URLがモバイル (true) か、それ以外 (false) かを示すブール値。 |

戻り値:

* `string`。渡されたSalesforceレコードIDに関連付けられているフォルダを表すURLが返されます。このURLをBox埋め込みウィジェットで使用して、任意のVisualforceページに埋め込むことができます。

### `createObjectFolderForRecordId`

| パラメータ      | 型    | 説明                                    |
| ---------- | ---- | ------------------------------------- |
| `recordId` | `id` | ルートフォルダIDを取得する必要があるSalesforceレコードのID。 |

戻り値:

* `string`。作成されたルートフォルダのBoxフォルダIDが返されます。
* ルートフォルダがすでに存在していた場合、そのルートフォルダのBoxフォルダIDが返されます。

### `createFolder`

| パラメータ            | 型        | 説明                                                                                       |
| ---------------- | -------- | ---------------------------------------------------------------------------------------- |
| `folderName`     | `string` | 作成するフォルダの名前。フォルダ名には制限があります。詳細は<Link href="/reference/post-folders">こちら</Link>を参照してください。  |
| `parentFolderId` | `string` | このフォルダが作成される親Boxフォルダ。                                                                    |
| `accessToken`    | `string` | 省略可 - `accessToken`が送信された場合は、Box APIコールにその値が使用されます。そうでない場合は、デフォルトのサービスアカウントの資格情報が使用されます。 |

戻り値:

* `string`。作成されたフォルダのBoxフォルダIDが返されます。
* フォルダが作成されなかった場合は`null`が返されます。この場合、`mostRecentError`で詳細を確認してください。

### `createFolderShareLink`

Boxフォルダの共有リンクを作成します。

| パラメータ      | 型        | 必須 | 説明                   |
| ---------- | -------- | -- | -------------------- |
| `folderId` | `string` | はい | 共有リンクを作成するBoxフォルダID。 |

戻り値:

* `string`。共有リンクのURLが返されます。
* 共有リンクが作成されなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* 共有リンクは、デフォルトのBox権限を使用して作成されます。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### `getFolderContents`

Boxフォルダからファイルとサブフォルダを取得します。

| パラメータ         | 型        | 必須  | 説明                                                                            |
| ------------- | -------- | --- | ----------------------------------------------------------------------------- |
| `folderId`    | `string` | はい  | コンテンツを取得するBoxフォルダID。                                                          |
| `accessToken` | `string` | いいえ | `accessToken`を送信すると、その値がBox APIコールに使用されます。そうでない場合、デフォルトのサービスアカウント資格情報が使用されます。 |

戻り値:

* Boxフォルダ内のファイルとフォルダに関する情報を格納した`FolderContents`オブジェクト。
* リクエストに失敗した場合には、`FolderContents`オブジェクトに`status`値が格納されています。`mostRecentError`で詳細を確認してください。

使用上の注意事項:

* `accessToken`が空であるか、`null`の場合には、このメソッドではサービスアカウント資格情報を使用します。
* レスポンスにはファイルとサブフォルダの両方が含まれる場合があります。
* 操作エラーについては、返された`FolderContents`オブジェクトの`status`値を確認してください。
* 操作に失敗した場合には、`mostRecentError`を確認してください。

### `createFolderForRecordId`

| パラメータ                 | 型         | 説明                                                                                |
| --------------------- | --------- | --------------------------------------------------------------------------------- |
| `recordId`            | `id`      | Boxフォルダの作成に使用されるSalesforceレコードID。                                                 |
| `folderNameOverride`  | `string`  | デフォルトでは、レコード名がフォルダ名になります。別の名前を付ける場合は、ここでその値を送信します。                                |
| `optCreateRootFolder` | `boolean` | オブジェクトのルートフォルダが存在しない場合に、それを作成するかどうかを示すブール値。falseを送信した場合、ルートフォルダが存在しないと呼び出しは失敗します。 |

戻り値:

* `string`。作成されたフォルダのBoxフォルダIDが返されます。
* フォルダが作成されなかった場合は`null`が返されます。この場合、`mostRecentError`で詳細を確認してください。
* SalesforceレコードがすでにBoxフォルダに関連付けられている場合、既存のBoxフォルダIDが返されます。

### `moveFolder`

| パラメータ               | 型        | 説明                                                                                  |
| ------------------- | -------- | ----------------------------------------------------------------------------------- |
| `folderId`          | `string` | 移動するフォルダのBoxフォルダID。                                                                 |
| `newParentFolderId` | `string` | 新しい親フォルダになるフォルダのBoxフォルダID。                                                          |
| `accessToken`       | `string` | 省略可 - `accessToken`を送信すると、その値がBox APIコールに使用されます。そうでない場合、デフォルトのサービスアカウント資格情報が使用されます。 |

戻り値:

* フォルダが正常に移動された場合は`true`。
* フォルダが正常に移動されなかった場合は`false`。`mostRecentError`で詳細を確認してください。

### `getUrlForFolder`

| パラメータ      | 型    | 説明       |
| ---------- | ---- | -------- |
| `recordId` | `id` | レコードのID。 |

戻り値:

* 指定されたURLを含む`pageReference`オブジェクト。
* パラメータが正しくない場合は`null`。

### `createFolderForRecordIdFromTemplate`

| パラメータ                 | 型         | 説明                                |
| --------------------- | --------- | --------------------------------- |
| `recordId`            | `id`      | SalesforceレコードID。                 |
| `templateFolderId`    | `string`  | テンプレートにするソースフォルダ。                 |
| `folderNameOverride`  | `string`  | 新しいフォルダの名前の上書き。                   |
| `optCreateRootFolder` | `boolean` | ルートフォルダが存在しない場合に作成するかどうかを決定するフラグ。 |

戻り値:

* 新しく作成されたフォルダID。
* パラメータが正しくない場合は`null`。

## フォルダ関連付けメソッド

### `getFolderAssociationsByRecordId`

| パラメータ      | 型    | 説明                                         |
| ---------- | ---- | ------------------------------------------ |
| `recordId` | `id` | 返されるフォルダマッピングエントリが関連付けられるSalesforceレコードID。 |

戻り値:

* 返されるリストは、このレコードに関連付けられているすべてのフォルダマッピングエントリのコレクションです。
* 一般に、フォルダマッピングエントリが存在しない場合は空のリストになりますが、状況によって`null`になる場合があります。

### `getFolderIdByRecordId`

| パラメータ      | 型    | 説明                           |
| ---------- | ---- | ---------------------------- |
| `recordId` | `id` | フォルダIDを取得するSalesforceレコードID。 |

戻り値:

* `string`。渡されたSalesforceレコードIDに関連付けられたBoxフォルダIDが返されます。

### `getFolderIdsByRecordIds`

1つ以上のSalesforceレコードIDに関連付けられたBoxフォルダIDを取得します。

| パラメータ       | 型          | 必須 | 説明                     |
| ----------- | ---------- | -- | ---------------------- |
| `recordIds` | `List<Id>` | はい | 検索対象のSalesforceレコードID。 |

戻り値:

* SalesforceレコードIDをキー、関連付けられたBoxフォルダIDを値とする`Map<Id, String>`。
* フォルダの関連付けが存在しない場合は空のマップ。

使用上の注意事項:

* このメソッドはSalesforceのフォルダ関連付けを照会するもので、Box APIは呼び出しません。
* `FRUP__c`オブジェクトの`Record_ID_Indexed__c`フィールドを照会します。
* `Box_Folder_ID__c`に値がある関連付けのみを返します。
* このメソッドを使用して、1回の呼び出しで複数のレコードとフォルダの関連付けを検索できます。

### `getRecordIdByFolderId`

| パラメータ      | 型        | 説明         |
| ---------- | -------- | ---------- |
| `folderId` | `string` | BoxフォルダID。 |

戻り値:

* `id`。渡されたBoxフォルダIDに関連付けられたSalesforceレコードIDが返されます。

### `createFolderAssociation`

| パラメータ      | 型        | 説明                             |
| ---------- | -------- | ------------------------------ |
| `recordId` | `id`     | Boxフォルダに関連付けるSalesforceレコードID。 |
| `folderId` | `string` | Salesforceレコードに関連付けるBoxフォルダID。 |

戻り値:

* `box__FRUP__c`オブジェクト - エラーが発生した場合 (`mostRecentError`を確認)、返されるFRUPオブジェクトは`null`になります。このFRUPエントリは、`commitChanges`メソッドの呼び出し時にデータベースに挿入されます。このメソッドでは、同じフォルダの複数レコードへの関連付けやその逆の関連付けが許可されないため、他のフォルダの関連付けとの一貫性が保証されます。

## コラボレーションメソッド

<Warning>
  Box for Salesforce Developer Toolkitによって作成されたコラボレーションは、コラボレータにコラボレーションメールを送信しません。Box for Salesforce統合に使用されるサービスアカウントのみがコラボレーションメールを受け取ります。
</Warning>

### `createCollaboration`

| パラメータ          | 型                               | 説明                                                                     |
| -------------- | ------------------------------- | ---------------------------------------------------------------------- |
| `folderId`     | `string`                        | コラボレーションを作成するBoxフォルダのID。                                               |
| `boxUserId`    | `string`                        | コラボレーションするBoxユーザーのID (`boxUserId`または`emailAddress`のどちらか一方のみ必要)。        |
| `emailAddress` | `string`                        | コラボレーションを行うBoxユーザーのメールアドレス。                                            |
| `collabType`   | `box.Toolkit.CollaborationType` | コラボレーションのタイプ (`CollaborationType`列挙型の定義を参照)。                           |
| `accessToken`  | `string`                        | 省略可 - 送信した場合、この値はBox APIコールの認証に使用されます。`null`の場合、サービスアカウントの資格情報が使用されます。 |

戻り値:

* `string`。作成されたBoxコラボレーションのIDが返されます。
* エラーが発生した場合は`null`が返されます。その場合、`mostRecentError`を確認してください。

### `createCollaborationOnRecord`

| パラメータ             | 型                               | 説明                                                                                                                                    |
| ----------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `userId`          | `id`                            | コラボレーションするSalesforceユーザーID。                                                                                                           |
| `recordId`        | `id`                            | コラボレーションするレコードフォルダのSalesforceレコードID。                                                                                                  |
| `collabType`      | `box.Toolkit.CollaborationType` | コラボレーションのタイプ (`CollaborationType`列挙型の定義を参照)。                                                                                          |
| `optCreateFolder` | `boolean`                       | SalesforceレコードIDに関連付けられたBoxフォルダがまだ存在しない場合に、それを作成するかどうかを示すブール値。ルートフォルダが存在しない場合は、ルートフォルダも作成されます。`false`に設定した場合、フォルダがまだ存在しないと呼び出しが失敗します。 |

戻り値:

* `string`。作成されたBoxコラボレーションのIDが返されます。
* エラーが発生した場合は`null`が返されます。その場合、`mostRecentError`を確認してください。

[collab-type]: https://support.box.com/hc/ja/articles/360044196413-コラボレータの権限レベルについて

[sf-httprequest]: https://developer.salesforce.com/docs/atlas.ja-jp.apexref.meta/apexref/apex_classes_restful_http_httprequest.htm

[sf-httpresponse]: https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_classes_restful_http_httpresponse.htm#apex_classes_restful_http_httpresponse

### `editCollaboration`

| パラメータ         | 型        | 説明                                                                  |
| ------------- | -------- | ------------------------------------------------------------------- |
| `collabId`    | `string` | コラボレーションID。                                                         |
| `collabType`  | `enum`   | `Box.Toolkit.CollaborationType`列挙型。                                 |
| `accessToken` | `string` | 省略可 - 送信した場合、この値はBox APIコールに使用されます。`null`の場合、サービスアカウントの資格情報が使用されます。 |

戻り値:

* トランザクションが成功したかどうかを示すブール値。
* パラメータが正しくない場合は`false`。

### `deleteCollaboration`

| パラメータ         | 型        | 説明                                                                  |
| ------------- | -------- | ------------------------------------------------------------------- |
| `collabId`    | `string` | コラボレーションID。                                                         |
| `accessToken` | `string` | 省略可 - 送信した場合、この値はBox APIコールに使用されます。`null`の場合、サービスアカウントの資格情報が使用されます。 |

戻り値:

* トランザクションが成功したかどうかを示すブール値。
* パラメータが正しくない場合は`false`。

## 検索と検出

### `search`

サービスアカウントがアクセスできるBoxコンテンツを検索します。

| パラメータ   | 型        | 必須 | 説明        |
| ------- | -------- | -- | --------- |
| `query` | `string` | はい | 検索クエリ文字列。 |

戻り値:

* 一致するファイルとフォルダを含む`SearchResults`オブジェクト。
* 検索が失敗した場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* サービスアカウントがアクセスできるファイル名、説明、およびコンテンツを検索します。
* Boxはデフォルトで最大100件の結果を返します。
* ページネーションや検索スコープの絞り込みが必要な場合は、フィルタを使用した`search`を使用してください。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### フィルタを使用した`search`

フィルタ、ページネーション、およびスコープ制御を使用してBoxコンテンツを検索します。

| パラメータ               | 型              | 必須  | 説明                                            |
| ------------------- | -------------- | --- | --------------------------------------------- |
| `query`             | `string`       | はい  | 検索クエリ文字列。                                     |
| `scope`             | `string`       | いいえ | `user_content`や`enterprise_content`などの検索スコープ。 |
| `trashContent`      | `string`       | いいえ | `trashed_only`や`non_trashed_only`などのごみ箱フィルタ。  |
| `limit`             | `integer`      | いいえ | 返す結果の数。Box APIの最大値は200。                       |
| `offset`            | `integer`      | いいえ | ページネーションの開始位置。                                |
| `ancestorFolderIds` | `List<String>` | いいえ | 検索スコープを限定するBoxフォルダID。                         |
| `contentTypes`      | `string`       | いいえ | `name`、`description`、`tags`などのコンテンツタイプフィルタ。   |

戻り値:

* 一致するファイルとフォルダを含む`SearchResults`オブジェクト。
* 検索が失敗した場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* ユーザーコンテンツと企業コンテンツのどちらかを選択するには、`scope`を使用します。
* Box APIは、1つのリクエストにつき最大200件の結果をサポートします。
* 結果セットが大きい場合にページ割りするには、`offset`を使用します。
* 結果を特定のフォルダ階層に限定するには、`ancestorFolderIds`を使用します。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### `getRecentInteractions`

現在のユーザーが最近操作したファイルとフォルダを取得します。

パラメータ:

* なし

戻り値:

* 最近アクセスされたコンテンツを含む`RecentItems`オブジェクト。
* リクエストが失敗した場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* 結果は最新の操作順に返されます。
* 操作には、項目を開く、プレビューする、ダウンロードする、編集するなどのアクションが含まれます。
* Boxはレスポンスの数をAPIのデフォルト値に制限します。通常は100項目です。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

## Enterprise Event

### `getEnterpriseEvents`

Boxのアクティビティを監査、監視するためのEnterprise Eventを取得します。

| パラメータ            | 型              | 必須  | 説明                                              |
| ---------------- | -------------- | --- | ----------------------------------------------- |
| `streamType`     | `string`       | はい  | `admin_logs`や`admin_logs_streaming`などのストリームタイプ。 |
| `limit`          | `integer`      | いいえ | 返すイベントの数。Box APIの最大値は500。                       |
| `streamPosition` | `string`       | いいえ | ページネーションやポーリングのためのストリーム位置マーカー。                  |
| `eventTypes`     | `List<String>` | いいえ | `ITEM_UPLOAD`や`ITEM_DOWNLOAD`などの含めるイベントタイプ。     |
| `createdAfter`   | `string`       | いいえ | この時刻以降に作成されたイベントのISO 8601タイムスタンプ。               |
| `createdBefore`  | `string`       | いいえ | この時刻以前に作成されたイベントのISO 8601タイムスタンプ。               |

戻り値:

* イベントエントリと次のストリーム位置を含む`EnterpriseEvents`オブジェクト。
* リクエストが失敗した場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドはサービスアカウント認証を使用し、企業管理者権限が必要です。
* イベントストリームのポーリングを継続するには、前回のレスポンスの`streamPosition`を使用します。
* Box APIは、1つのリクエストにつき最大500件のイベントをサポートします。
* 日付フィルタは、`YYYY-MM-DDTHH:MM:SSZ`などのISO 8601形式を使用する必要があります。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

## メタデータ

<Info>
  すべてのメソッドに対する詳細なエラーレスポンスについては、`toolkit.mostRecentError`の値を確認してください。
</Info>

### `getMetadataTemplateByName`

名前とスコープを指定してメタデータテンプレート定義を取得します。

| パラメータ          | 型        | 必須 | 説明                                                     |
| -------------- | -------- | -- | ------------------------------------------------------ |
| `templateName` | `string` | はい | メタデータテンプレートの名前。                                        |
| `scope`        | `string` | はい | メタデータテンプレートのスコープ。値は \[`global`, `enterprise`] のいずれかです。 |

戻り値:

* テンプレート定義を含む`MetadataTemplate`オブジェクト。
* テンプレートが取得されなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* メタデータ値を作成または更新する前にメタデータテンプレートを調査または検証するために使用します。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### `getBoxMetadataByFileId`

このメソッドでは、<Link href="/reference/get-files-id-metadata-id-id">ファイルのメタデータインスタンスを取得エンドポイント</Link>を呼び出します。

| パラメータ      | 型        | 必須 | 説明                                                     |
| ---------- | -------- | -- | ------------------------------------------------------ |
| `fileId`   | `string` | はい | メタデータを取得するBoxファイルのID。                                  |
| `scope`    | `string` | はい | メタデータテンプレートのスコープ。値は \[`global`, `enterprise`] のいずれかです。 |
| `template` | `string` | はい | メタデータテンプレートの名前。                                        |

戻り値:

* メタデータのキー/値ペアを含む`Metadata`オブジェクト。
* メタデータが取得されなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* ファイルにメタデータインスタンスが存在しない場合、リクエストはエラーを返します。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### `createBoxMetadataByFileId`

このメソッドでは、<Link href="/reference/post-files-id-metadata-id-id">ファイルのメタデータインスタンスを作成エンドポイント</Link>を呼び出します。

| パラメータ            | 型                     | 必須 | 説明                                                     |
| ---------------- | --------------------- | -- | ------------------------------------------------------ |
| `fileId`         | `string`              | はい | メタデータを作成するBoxファイルのID。                                  |
| `scope`          | `string`              | はい | メタデータテンプレートのスコープ。値は \[`global`, `enterprise`] のいずれかです。 |
| `template`       | `string`              | はい | メタデータテンプレートの名前。                                        |
| `metadataValues` | `Map<String, Object>` | はい | メタデータテンプレートのフィールドに一致するキー/値ペア。                          |

戻り値:

* 作成されたメタデータ値を含む`Metadata`オブジェクト。
* メタデータが作成されなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* 指定されたファイル、スコープ、テンプレートにメタデータがすでに存在する場合、このメソッドは失敗します。既存のメタデータを変更するには、`updateBoxMetadataByFileId`を使用します。
* メタデータのキーはテンプレートのフィールド名に一致している必要があります。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### `updateBoxMetadataByFileId`

このメソッドでは、<Link href="/reference/put-files-id-metadata-id-id">ファイルのメタデータインスタンスを更新エンドポイント</Link>を呼び出します。

| パラメータ        | 型                           | 必須 | 説明                                                     |
| ------------ | --------------------------- | -- | ------------------------------------------------------ |
| `fileId`     | `string`                    | はい | メタデータを更新するBoxファイルのID。                                  |
| `scope`      | `string`                    | はい | メタデータテンプレートのスコープ。値は \[`global`, `enterprise`] のいずれかです。 |
| `template`   | `string`                    | はい | メタデータテンプレートの名前。                                        |
| `operations` | `List<Map<String, Object>>` | はい | JSON Patch操作。各操作には`op`、`path`、`value`などの値が含まれます。       |

戻り値:

* 更新されたメタデータ値を含む`Metadata`オブジェクト。
* メタデータが更新されなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* `operations`パラメータはJSON Patch形式を使用します。
* 各操作には`op`、`path`を含める必要があり、操作で必要な場合は`value`も含める必要があります。
* サポートされている操作には、`add`、`replace`、`remove`、`test`があります。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### `deleteBoxMetadataByFileId`

このメソッドでは、<Link href="/reference/delete-files-id-metadata-id-id">ファイルからメタデータインスタンスを削除エンドポイント</Link>を呼び出します。

| パラメータ      | 型        | 必須 | 説明                                                     |
| ---------- | -------- | -- | ------------------------------------------------------ |
| `fileId`   | `string` | はい | メタデータを削除するBoxファイルのID。                                  |
| `scope`    | `string` | はい | メタデータテンプレートのスコープ。値は \[`global`, `enterprise`] のいずれかです。 |
| `template` | `string` | はい | メタデータテンプレートの名前。                                        |

戻り値:

* トランザクションが成功したかどうかを示すブール値。
* メタデータが削除されなかった場合は`false`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* ファイルからメタデータインスタンスを削除します。メタデータテンプレートは削除されません。
* このメソッドで`false`が返された場合には、`mostRecentError`を確認してください。

### `getBoxMetadataByFolderId`

このメソッドでは、<Link href="/reference/get-folders-id-metadata-id-id">フォルダのメタデータインスタンスを取得エンドポイント</Link>を呼び出します。

| パラメータ          | 型        | 説明                                                |
| -------------- | -------- | ------------------------------------------------- |
| `folderId`     | `string` | メタデータを取得するBoxフォルダのID。                             |
| `scope`        | `string` | メタデータテンプレートのスコープ。値は`[global, enterprise]`のいずれかです。 |
| `template_key` | `string` | メタデータテンプレートの名前。                                   |

戻り値:

* このフォルダ、スコープ、およびテンプレートキーに関連付けられた`FolderMetadata`レコード。カスタム値は、このオブジェクトの`keyValuePairs`変数で確認できます。
* 以下の場合は`null`。
  * パラメータが正しくない
  * フォルダへのアクセス権限がない
  * メタデータカスケードポリシーが見つからない

### `createBoxMetadataByFolderId`

このメソッドでは、<Link href="/reference/post-folders-id-metadata-id-id">フォルダにメタデータインスタンスを作成</Link>エンドポイントを呼び出します。

| パラメータ           | 型                    | 説明                                                                                                                                                                                                                                               |
| --------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `folderId`      | `string`             | メタデータを作成するBoxフォルダのID。                                                                                                                                                                                                                            |
| `scope`         | `string`             | メタデータテンプレートのスコープ。値は \[`global`, `enterprise`] のいずれかです。                                                                                                                                                                                           |
| `template_key`  | `string`             | メタデータテンプレートの名前。                                                                                                                                                                                                                                  |
| `keyValuePairs` | `List<KeyValuePair>` | このクラスはマップとして機能します。Boxメタデータに送信する属性のキー/値ペアをリストとして指定します。キー/値のマッピングは<Link href="/reference/post-folders-id-metadata-id-id">API</Link>と同じパターンに従います。`'3000'`などの数値型および`'Customer;Order'`などの複数選択値は、コードサンプルに見られる通常のメタデータ値と同様に、`value`フィールドで文字列入力として表されます。 |

戻り値:

* 新しく作成された`FolderMetadata`オブジェクト。
* 以下の場合は`null`。
  * パラメータが正しくない
  * フォルダへのアクセス権限がない
  * メタデータカスケードポリシーが見つからない

### `updateBoxMetadataByFolderId`

<Link href="/reference/put-folders-id-metadata-id-id">フォルダのメタデータインスタンスを更新</Link>エンドポイントを呼び出します。

| パラメータ          | 型                            | 説明                                                                                                                                                                                                                 |
| -------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `folderId`     | `string`                     | メタデータを更新するBoxフォルダのID。                                                                                                                                                                                              |
| `scope`        | `string`                     | メタデータテンプレートのスコープ。値は \[`global`, `enterprise`] のいずれかです。                                                                                                                                                             |
| `template_key` | `string`                     | メタデータテンプレートの名前。                                                                                                                                                                                                    |
| `mdUpdates`    | `List<FolderMetadataUpdate>` | メタデータの更新。操作、パス、および値を指定します。メタデータの更新レコードは、<Link href="/reference/put-folders-id-metadata-id-id">API</Link>と同じパターンに従います。`3000`などの数値型および`Customer;Order`などの複数選択値は、コードサンプルにおける通常のメタデータ値と同様に、`value`フィールドで文字列入力として表されます。 |

戻り値:

* 更新された`FolderMetadata`オブジェクト。
* 以下の場合は`null`。
  * パラメータが正しくない
  * フォルダへのアクセス権限がない
  * メタデータカスケードポリシーが見つからない

### `deleteBoxMetadataFolderId`

このメソッドでは、<Link href="/reference/delete-folders-id-metadata-id-id">フォルダからメタデータインスタンスを削除</Link>エンドポイントを呼び出します。

| パラメータ          | 型        | 説明                                                     |
| -------------- | -------- | ------------------------------------------------------ |
| `folderId`     | `string` | メタデータを削除するBoxフォルダのID。                                  |
| `scope`        | `string` | メタデータテンプレートのスコープ。値は \[`global`, `enterprise`] のいずれかです。 |
| `template_key` | `string` | メタデータテンプレートの名前。                                        |

戻り値:

* トランザクションが成功したかどうかを示すブール値。
* パラメータが誤っている場合またはメタデータが見つからない場合は、`false`が返されます。

### `getMetadataCascadePolicyById`

このメソッドでは、<Link href="/reference/get-metadata-cascade-policies-id">フォルダからメタデータカスケードポリシーを取得</Link>エンドポイントを呼び出します。このメソッドはIDを必要とするため、最初に`getMetadataCascadePoliciesByFolderId`メソッドを呼び出す必要があります。

| パラメータ      | 型        | 説明                |
| ---------- | -------- | ----------------- |
| `policyId` | `string` | 取得するカスケードポリシーのID。 |

戻り値:

* Boxから取得された`MetadataCascadePolicy`オブジェクト。
* 以下の場合は`null`。
  * パラメータが正しくない
  * フォルダへのアクセス権限がない
  * メタデータカスケードポリシーが見つからない

### `getMetadataCascadePoliciesByFolderId`

このメソッドでは、フォルダIDを指定し、<Link href="/reference/get-metadata-cascade-policies">メタデータカスケードポリシーを取得</Link>エンドポイントを呼び出すことで、カスケードポリシーを取得します。

| パラメータ               | 型         | 説明                                                                       | 必須  |
| ------------------- | --------- | ------------------------------------------------------------------------ | --- |
| `folderId`          | `string`  | どのフォルダのポリシーを返すかを指定します。これは、IDが0のルートフォルダでは使用できません。                         | はい  |
| `paginationMarker`  | `string`  | 結果が返される開始位置のマーカー。マーカーベースのページネーションに使用されます。                                | いいえ |
| `offset`            | `integer` | レスポンスが開始される項目のオフセット。                                                     | いいえ |
| `ownerEnterpriseId` | `string`  | メタデータカスケードポリシーを検索するEnterprise ID。指定されていない場合は、デフォルトで現在のEnterpriseに設定されます。 | いいえ |

戻り値:

* Boxから取得された`MetadataCascadePolicy`オブジェクトのリスト。
* 以下の場合は`null`。
  * パラメータが正しくない
  * フォルダへのアクセス権限がない
  * メタデータカスケードポリシーが見つからない

### `createMetadataCascadePolicy`

このメソッドでは、BoxフォルダID、スコープ、テンプレートキーを指定し、<Link href="/reference/post-metadata-cascade-policies">メタデータカスケードポリシーを投稿</Link>エンドポイントを呼び出すことで、カスケードポリシーを作成します。

| パラメータ          | 型        | 説明                                                        |
| -------------- | -------- | --------------------------------------------------------- |
| `folderId`     | `string` | メタデータカスケードポリシーを作成するBoxフォルダのID。                            |
| `scope`        | `string` | メタデータカスケードポリシーのスコープ。値は \[`global`, `enterprise`] のいずれかです。 |
| `template_key` | `string` | テンプレートキーの名前。                                              |

戻り値:

* 新しく生成された`MetadataCascadePolicy`。
* 以下の場合は`null`。
  * パラメータが正しくない
  * フォルダへのアクセス権限がない
  * メタデータカスケードポリシーの詳細が見つからない

### `deleteMetadataCascadePolicy`

このメソッドでは、カスケードポリシーIDを指定し、<Link href="/reference/delete-metadata-cascade-policies-id">メタデータカスケードポリシーIDを削除</Link>エンドポイントを呼び出すことで、カスケードポリシーを削除します。

| パラメータ      | 型        | 説明                |
| ---------- | -------- | ----------------- |
| `policyId` | `string` | 削除するカスケードポリシーのID。 |

戻り値:

* トランザクションが成功したかどうかを示すブール値。
* パラメータが正しくない場合、フォルダへのアクセス権限がない場合、またはメタデータカスケードポリシーが見つからない場合は、`false`が返されます。

### `enableAppActivity`

このメソッドでは、アプリアクティビティに指定されたフォルダにメタデータを適用してカスケードすることで、そのフォルダを有効にします。

| パラメータ      | 型        | 説明                          |
| ---------- | -------- | --------------------------- |
| `folderId` | `string` | アプリアクティビティを有効にするBoxフォルダのID。 |

戻り値:

* トランザクションが成功したかどうかを示すブール値。
* パラメータが正しくない場合は`false`。

## SalesforceとSlack

### `getIntegrationMappings`

このツールキットのメソッドでは、<Link href="/reference/get-integration-mappings-slack">統合マッピングを取得</Link>エンドポイントを呼び出して既存のマッピングを取得します。

| パラメータ           | 型      | 説明                                        |
| --------------- | ------ | ----------------------------------------- |
| `integration`   | String | `Slack`は、現在唯一サポートされている値です。                |
| `partnerItemId` | String | 指定された統合側でマッピングされている項目のID。例: SlackチャンネルID。 |

戻り値:

* `IntegrationMapping`オブジェクトのリスト。
* パラメータが正しくない場合、アクセス権限がない場合、または統合マッピングが見つからない場合は、`null`が返されます。

### `createIntegrationMapping`

このツールキットのメソッドでは、<Link href="/reference/post-integration-mappings-slack">統合マッピングリクエストを作成</Link>エンドポイントを呼び出してマッピングを作成します。

<Note>
  Slackチャンネルにマッピングする場合、`access_management_disabled`はデフォルトで`FALSE`に設定されます。これにより、Slackチャンネルのメンバーリストに含まれていないコラボレータは自動的に削除されます。組織がBoxでの共有をどのように設定しているかに応じて、`setSlackChannelAccessManagementDisabled`メソッドを使用して`access_management_disabled`を`TRUE`に設定するか、[グループ][12]を使用することをお勧めします。これにより、Slackの設定に関係なく、どのユーザーも削除されなくなります。ファイルがSlackチャンネルにアップロードされると、コラボレーションはSlackに追加されるかSlackから削除されます。
</Note>

| パラメータ         | 型                    | 説明                             |
| ------------- | -------------------- | ------------------------------ |
| `integration` | String               | `Slack`は、現在唯一サポートされている値です。     |
| `mapping`     | `IntegrationMapping` | Apex定義タイプ`IntegrationMapping`。 |

戻り値:

* トランザクションが成功したかどうかを示すブール値。

### `deleteIntegrationMapping`

このツールキットのメソッドでは、<Link href="/reference/delete-integration-mappings-slack-id">統合マッピングを削除</Link>エンドポイントを呼び出してマッピングを削除します。

| パラメータ                  | 型      | 説明                                |
| ---------------------- | ------ | --------------------------------- |
| `integration`          | String | `Slack`は、現在唯一サポートされている値です。        |
| `integrationMappingId` | String | `getIntegrationMappings`から取得されます。 |

戻り値:

* トランザクションが成功したかどうかを示すブール値。

### `mapSfdcRecordToSlackChannel`

このツールキットのメソッドでは、上記の統合マッピングメソッドを使用し、以下の4種類のユースケースで使用できるラッパーを提供します。

1. SalesforceまたはSlackにマッピングが存在しない場合は、Box for Salesforceフォルダ構造にフォルダが作成され、そのフォルダをSlackチャンネルとリンクするための統合マッピングが作成されます。
2. Salesforceからのマッピングのみ存在する場合は、引き続きそのフォルダが使用され、場所は変更されません。そのフォルダをSlackチャンネルとリンクするための統合マッピングを作成します。
3. Slackからのマッピングのみ存在する場合は、引き続きそのフォルダが使用され、既存のフォルダを使用するためにSalesforceレコード用にFRUPレコードが作成されます。このフォルダは、Salesforceルートフォルダ外に存在する可能性があります。
4. SalesforceとSlackに既存のマッピングがあるものの、相互に関連付けられていない場合は、`Toolkit.mostRecentError`またはフローアクション内でエラーがスローされ、マッピングがすでに存在することが示されます。

このメソッド/呼び出し可能なアクションは、Box for Salesforceパッケージの`Create Box Folder/Slack Channel Mapping`で提供されるフローテンプレートで使用されています。

<Note>
  Slackチャンネルにマッピングする場合、`access_management_disabled`はデフォルトで`FALSE`に設定されます。これにより、Slackチャンネルのメンバーリストに含まれていないコラボレータは自動的に削除されます。組織がBoxでの共有をどのように設定しているかに応じて、`setSlackChannelAccessManagementDisabled`メソッドを使用して`access_management_disabled`を`TRUE`に設定するか、[グループ][12]を使用することをお勧めします。これにより、Slackの設定に関係なく、どのユーザーも削除されなくなります。ファイルがSlackチャンネルにアップロードされると、コラボレーションはSlackに追加されるかSlackから削除されます。
</Note>

| パラメータ                   | 型      | 説明                                                                                            |
| ----------------------- | ------ | --------------------------------------------------------------------------------------------- |
| `recordId`              | ID     | SalesforceレコードID。                                                                             |
| `slackChannelId`        | String | SlackチャンネルID。                                                                                 |
| `slackWorkspaceOrOrgId` | String | Box for Slackが組織全体でインストールされている場合は、オーガナイゼーションID (E1234567など) またはワークスペースID (T5555555など) を指定します。 |

戻り値:

* トランザクションが成功したかどうかを示すブール値。

### `setSlackChannelAccessManagementDisabled`

このツールキットのメソッドでは、<Link href="/reference/put-integration-mappings-slack-id">統合マッピングを更新</Link>エンドポイントを呼び出して、アクセス管理の非アクティブ化設定を更新します。

このメソッド/呼び出し可能なアクションは、Box for Salesforceパッケージの`Create Box Folder/Slack Channel Mapping`で提供されるフローテンプレートで使用されています。

| パラメータ       | 型       | 説明                                                                                             |
| ----------- | ------- | ---------------------------------------------------------------------------------------------- |
| `channelId` | String  | SlackチャンネルID。                                                                                  |
| `disabled`  | Boolean | 基になるBox項目に対するチャンネルメンバーのアクセスを自動で管理するかどうかを示します。チャンネルのタイプによっては、アクセスがコラボレーションまたは共有リンクの作成により管理されます。 |

戻り値:

* トランザクションが成功したかどうかを示すブール値。

## Box Sign

### `sendSignRequests`

このメソッドでは、<Link href="/reference/post-sign-requests">署名リクエストを作成</Link>エンドポイントを呼び出して、署名用ドキュメントを送信します。

| **パラメータ**  | **型**                  | **説明**                                         |
| ---------- | ---------------------- | ---------------------------------------------- |
| `requests` | `List<BoxSignRequest>` | 署名者、ファイル、署名リクエストの構成を含むBox Signリクエストオブジェクトのリスト。 |

**戻り値:**

`BoxSignResponse`オブジェクト (処理されるリクエストごとに1つ) のリスト。各レスポンスには、署名リクエストのID、ステータス、エラー情報 (ある場合) が含まれます。

以下の場合、`BoxSignResponse`によってエラーの詳細が返されます。

* パラメータが正しくない
* ファイルへのアクセス権限がない
* ファイルのアップロードに失敗した
* Box Sign APIからエラーが返された

## ドキュメントの生成

### `submitDocGenBatch`

Boxドキュメント生成テンプレートから生成するドキュメントのバッチを送信します。

| パラメータ            | 型                           | 必須 | 説明                        |
| ---------------- | --------------------------- | -- | ------------------------- |
| `templateFileId` | `string`                    | はい | ドキュメント生成テンプレートのBoxファイルID。 |
| `documents`      | `List<Map<String, Object>>` | はい | 生成に使用するドキュメントの構成とマージデータ。  |

戻り値:

* バッチのIDとステータスを含む`DocGenBatch`オブジェクト。
* バッチが送信されなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* 各ドキュメント構成には、`fileName`や`data`の値など、生成されたファイル名と、テンプレートのマージデータが含まれている必要があります。
* ドキュメント生成は非同期的に実行されます。バッチのステータスを確認するには、`getDocGenBatch`を使用してください。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### `getDocGenBatch`

ドキュメント生成バッチのステータスと詳細を取得します。

| パラメータ     | 型        | 必須 | 説明                              |
| --------- | -------- | -- | ------------------------------- |
| `batchId` | `string` | はい | `submitDocGenBatch`から返されたバッチID。 |

戻り値:

* バッチのステータスと生成されたファイルの詳細を含む`DocGenBatch`オブジェクト。
* バッチが取得されなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* このメソッドを定期的にポーリングしてバッチの進行状況を監視してください。
* バッチのステータスには`pending`、`processing`、`completed`、`failed`があります。
* 生成されたファイルの詳細は、バッチ完了後に利用可能になります。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

## ファイルリクエスト

### `copyFileRequest`

カスタマイズ可能なプロパティを備えた既存のファイルリクエストのコピーを作成します。

| パラメータ                   | 型         | 必須  | 説明                                       |
| ----------------------- | --------- | --- | ---------------------------------------- |
| `fileRequestId`         | `string`  | はい  | コピーするファイルリクエストのID。                       |
| `folderId`              | `string`  | はい  | アップロードしたファイルのコピー先BoxフォルダID。              |
| `title`                 | `string`  | いいえ | 新しいファイルリクエストのカスタムタイトル。                   |
| `description`           | `string`  | いいえ | 新しいファイルリクエストのカスタム説明。                     |
| `status`                | `string`  | いいえ | ファイルリクエストのステータス (`active`や`inactive`など)。 |
| `isDescriptionRequired` | `boolean` | いいえ | 送信者に説明の入力を要求するかどうか。                      |
| `isEmailRequired`       | `boolean` | いいえ | 送信者にメールアドレスの入力を要求するかどうか。                 |

戻り値:

* 新しいファイルリクエストの詳細を含む`FileRequest`オブジェクト。
* ファイルリクエストがコピーされなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* 省略可能なパラメータが`null`の場合、新しいファイルリクエストはそれらの値を元のファイルリクエストから継承します。
* コピーしたファイルリクエストをすぐに有効にするには、`active`を使用します。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

### デフォルト設定を使用した`copyFileRequest`

元のファイルリクエストの設定と新しいコピー先フォルダを使用して、既存のファイルリクエストのコピーを作成します。

| パラメータ           | 型        | 必須 | 説明                          |
| --------------- | -------- | -- | --------------------------- |
| `fileRequestId` | `string` | はい | コピーするファイルリクエストのID。          |
| `folderId`      | `string` | はい | アップロードしたファイルのコピー先BoxフォルダID。 |

戻り値:

* 新しいファイルリクエストの詳細を含む`FileRequest`オブジェクト。
* ファイルリクエストがコピーされなかった場合は`null`。この場合には、`mostRecentError`を確認してください。

使用上の注意事項:

* このメソッドでは、サービスアカウント認証を使用します。
* コピーしたファイルリクエストは、元のファイルリクエストから設定を継承し、指定されたフォルダIDを使用します。
* この方法は、コピー先フォルダの変更が必要な場合にのみ使用してください。
* このメソッドで`null`が返された場合には、`mostRecentError`を確認してください。

## Box Hubs

### Box Hubsの管理

#### `getHubById`

このメソッドでは、<Link href="/reference/v2025.0/get-hubs-id">IDを指定してHubを取得</Link>エンドポイントを呼び出して、特定のHubを取得します。

| **パラメータ** | **型**    | **説明**      |
| --------- | -------- | ----------- |
| `hubId`   | `string` | 取得するHubのID。 |

**戻り値:**

* Hubの詳細およびメタデータを含むHubオブジェクト。
* 以下の場合は`HubsToolkitException`。
  * Hub IDが空またはnullである
  * Hubへのアクセス権限がない
  * Hubが見つからない

#### `getAllHubs`

このメソッドでは、<Link href="/reference/v2025.0/get-hubs">すべてのHubを取得</Link>エンドポイントを呼び出して、すべてのHubのリストを取得します。

| **パラメータ**    | **型**     | **説明**                            |
| ------------ | --------- | --------------------------------- |
| `limitCount` | `integer` | 省略可 - 返されるHubの最大数。                |
| `marker`     | `string`  | 省略可 - 追加の結果を取得する場合のページネーションのマーカー。 |

**戻り値:**

* Hubのリストとページネーションの情報を含む`HubsList`オブジェクト。
* 以下の場合は`HubsToolkitException`。
  * Hubへのアクセス権限がない
  * APIリクエストが失敗した

#### `getEnterpriseHubs`

このメソッドでは、<Link href="/reference/v2025.0/get-enterprise-hubs">企業のHubを取得</Link>エンドポイントを呼び出して、企業レベルのHubを取得します。

| **パラメータ**    | **型**     | **説明**                            |
| ------------ | --------- | --------------------------------- |
| `limitCount` | `integer` | 省略可 - 返されるHubの最大数。                |
| `marker`     | `string`  | 省略可 - 追加の結果を取得する場合のページネーションのマーカー。 |

**戻り値:**

* 企業のHubのリストとページネーションの情報を含む`HubsList`オブジェクト。
* 以下の場合は`HubsToolkitException`。
  * 企業のHubへのアクセス権限がない
  * APIリクエストが失敗した

#### `createHub`

このメソッドでは、<Link href="/reference/v2025.0/post-hubs">Hubを作成エンドポイント</Link>を呼び出して、新しいHubを作成します。

| **パラメータ**     | **型**    | **説明**                  |
| ------------- | -------- | ----------------------- |
| `title`       | `string` | 必須 - Hubのタイトル (最大50文字)。 |
| `description` | `string` | 省略可 - Hubの説明。           |

**戻り値:**

* 新しく作成されたHubの詳細を含むHubオブジェクト。
* 以下の場合は`HubsToolkitException`。
  * タイトルが空またはnullである
  * タイトルが50文字を超えている
  * Hubを作成するためのアクセス権限がない
  * APIリクエストが失敗した

#### `updateHub`

このメソッドでは、<Link href="/reference/v2025.0/put-hubs-id">Hubを更新エンドポイント</Link>を呼び出して、既存のHubを変更します。

| **パラメータ**       | **型**              | **説明**                   |
| --------------- | ------------------ | ------------------------ |
| `hubId`         | `string`           | 必須 - 更新するHubのID。         |
| `updateRequest` | `HubUpdateRequest` | 必須 - 更新するフィールドを含むオブジェクト。 |

**戻り値:**

* 更新されたHubの詳細を含むHubオブジェクト。
* 以下の場合は`HubsToolkitException`。
  * Hub IDが空またはnullである
  * 更新リクエストがnullである
  * タイトルが50文字を超えている
  * Hubへのアクセス権限がない
  * APIリクエストが失敗した

#### `copyHub`

このメソッドでは、<Link href="/reference/v2025.0/post-hubs-id-copy">Hubをコピーエンドポイント</Link>を呼び出して、既存のHubのコピーを作成します。

| **パラメータ**     | **型**    | **説明**                        |
| ------------- | -------- | ----------------------------- |
| `hubId`       | `string` | 必須 - コピーするHubのID。             |
| `title`       | `string` | 省略可 - コピーしたHubのタイトル (最大50文字)。 |
| `description` | `string` | 省略可 - コピーしたHubの説明。            |

**戻り値:**

* 新しくコピーして作成されたHubの詳細を含むHubオブジェクト。
* 以下の場合は`HubsToolkitException`。
  * Hub IDが空またはnullである
  * タイトルが50文字を超えている
  * 元のHubへのアクセス権限がない
  * APIリクエストが失敗した

### Box Hubコラボレーション

#### `createUserCollaboration`

このメソッドでは、<Link href="/reference/v2025.0/post-hub-collaborations">Hubコラボレーションを作成</Link>エンドポイントを呼び出して、Hubにユーザーを追加します。

| **パラメータ** | **型**    | **説明**              |
| --------- | -------- | ------------------- |
| `hubId`   | `string` | 必須 - HubのID。        |
| `userId`  | `string` | 必須 - 追加するユーザーのID。   |
| `role`    | `string` | 必須 - Hub内のユーザーのロール。 |

**戻り値:**

* コラボレーションの詳細を含む`HubCollaboration`オブジェクト。
* 以下の場合は`HubsToolkitException`。
  * Hub IDが空またはnullである
  * ユーザーIDが空またはnullである
  * ロールが空またはnullである
  * Hubへのアクセス権限がない
  * APIリクエストが失敗した

#### `createHubCollaboration`

このメソッドでは、<Link href="/reference/v2025.0/post-hub-collaborations">Hubコラボレーションを作成</Link>エンドポイントを呼び出して、Hubにコラボレーションを追加します。

| **パラメータ** | **型**                     | **説明**                                         |
| --------- | ------------------------- | ---------------------------------------------- |
| `request` | `HubCollaborationRequest` | 必須 - Hubの参照などのコラボレーションの詳細を含み、情報でアクセス可能なオブジェクト。 |

**戻り値:**

* コラボレーションの詳細を含む`HubCollaboration`オブジェクト。
* 以下の場合は`HubsToolkitException`。
  * コラボレーションリクエストがnullである
  * IDによるHubの参照がない
  * Hubへのアクセス権限がない
  * APIリクエストが失敗した

#### `getHubCollaborations`

このメソッドでは、<Link href="/reference/v2025.0/get-hub-collaborations">Hubコラボレーションを取得</Link>エンドポイントを呼び出して、Hubのコラボレーションを取得します。

| **パラメータ**    | **型**     | **説明**                            |
| ------------ | --------- | --------------------------------- |
| `hubId`      | `string`  | 必須 - HubのID。                      |
| `limitCount` | `integer` | 省略可 - 返されるコラボレーションの最大数。           |
| `marker`     | `string`  | 省略可 - 追加の結果を取得する場合のページネーションのマーカー。 |

**戻り値:**

* コラボレーションのリストとページネーションの情報を含む`HubCollaborationsList`オブジェクト。
* 以下の場合は`HubsToolkitException`。
  * Hub IDが空またはnullである
  * Hubへのアクセス権限がない
  * APIリクエストが失敗した

#### `updateHubCollaboration`

このメソッドでは、<Link href="/reference/v2025.0/put-hub-collaborations-id">Hubコラボレーションを更新</Link>エンドポイントを呼び出して、コラボレーションを変更します。

| **パラメータ**         | **型**    | **説明**                |
| ----------------- | -------- | --------------------- |
| `collaborationId` | `string` | 必須 - 更新するコラボレーションのID。 |
| `role`            | `string` | 必須 - コラボレーションの新しいロール。 |

**戻り値:**

* コラボレーションの詳細を含む`HubCollaboration`オブジェクト。
* 以下の場合は`HubsToolkitException`。
  * コラボレーションIDが空またはnullである
  * ロールが空またはnullである
  * コラボレーションへのアクセス権限がない
  * APIリクエストが失敗した

### Box Hubの項目

#### `addHubItem`

このメソッドでは、<Link href="/reference/v2025.0/post-hubs-id-manage-items">Hubの項目を管理</Link>エンドポイントを呼び出して、Hubに項目を追加します。

| **パラメータ**  | **型**    | **説明**                            |
| ---------- | -------- | --------------------------------- |
| `hubId`    | `string` | 必須 - HubのID。                      |
| `itemId`   | `string` | 必須 - 追加する項目のID。                   |
| `itemType` | `string` | 必須 - 項目のタイプ (例: `file`、`folder`)。 |

**戻り値:**

* 項目の管理操作の結果を含む`HubItemsManageResponse`オブジェクト。
* 以下の場合は`HubsToolkitException`。
  * Hub IDが空またはnullである
  * 項目IDが空またはnullである
  * 項目タイプが空またはnullである
  * Hubへのアクセス権限がない
  * APIリクエストが失敗した

## デバッグ

### `setEnhancedDebugging`

現在のToolkitインスタンス向けの拡張デバッグログを有効または無効にします。

| パラメータ     | 型         | 必須 | 説明                                     |
| --------- | --------- | -- | -------------------------------------- |
| `enabled` | `boolean` | はい | 拡張デバッグを有効にする場合は`true`、無効にする場合は`false`。 |

戻り値:

* `Void`

使用上の注意事項:

* 拡張デバッグは、現在のToolkitインスタンスにのみ適用されます。
* 拡張デバッグを有効にすると、追加でHTTPリクエストとレスポンスの詳細がログ記録されます。
* トラブルシューティングに拡張デバッグを使用し、実稼働環境では不要なログ記録が行われないように無効にします。
* この設定はトランザクション間で維持されません。

### `isEnhancedDebuggingEnabled`

現在のToolkitインスタンスに対して拡張デバッグが有効になっているかどうかを確認します。

パラメータ:

* なし

戻り値:

* 拡張デバッグが有効になっている場合は`true`。
* 拡張デバッグが無効になっている場合は`false`。

使用上の注意事項:

* このメソッドは副次的影響を持ちません。
* デバッグのみのロジックを条件付きで実行するために使用します。
* 戻り値には、`setEnhancedDebugging`によって適用された設定が反映されます。

[12]: https://support.box.com/hc/articles/360043694554-Creating-and-Managing-Groups

<RelatedLinks
  title="関連するガイド"
  items={[
{ label: translate("Install Salesforce SDK"), href: "/guides/tooling/sdks/salesforce", badge: "GUIDE" }
]}
/>
