日本時間5月16日のContent Cloud Summitで、カスタムアプリにBox AI APIを活用する方法を紹介します。

詳細を表示

メソッドと操作

メソッドと操作

ツールキットの詳細

クラス名: box.Toolkit

インスタンス変数

mostRecentError

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

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

Enum CollaborationType

コラボレーションのタイプを示す列挙型。

可能性のある値: EDITORVIEWERPREVIEWERUPLOADERCOOWNEROWNERPREVIEWERUPLOADERVIEWERUPLOADER

静的メソッド

deleteServiceUserAssociation

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

パラメータ:

  • なし

戻り値:

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

deleteUserAssociation

パラメータ説明
userIdid資格情報がクリアされるユーザーのID。

戻り値:

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

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

box.Toolkit()

パラメータ:

  • なし

commitChanges

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

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

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

パラメータ:

  • なし

戻り値:

  • Void

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

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

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

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

戻り値:

  • Void

ジェネリックメソッド

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

sendRequest

パラメータ説明
requestHttpRequestエンドポイントとメソッドが設定されたHttpRequestオブジェクト。

戻り値:

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

ファイル操作

createFileFromAttachment

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

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

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

戻り値:

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

getObjectFolderByRecordId

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

戻り値:

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

フォルダ操作

getRootFolderId

パラメータ:

  • なし

戻り値:

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

getObjectFolderByRecordId

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

戻り値:

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

getFolderUrl

  • このメソッドは、特定のレコードの埋め込みウィジェットURLを取得します。このため、必要に応じて独自の埋め込みロジックを使用できます。
  • このメソッドではシームレスログインの設定が優先されます。このため、シームレスログインが有効になっている場合、ユーザーはURLに自動的にログインされます。
パラメータ説明
recordIdidルートフォルダIDを取得する必要があるSalesforceレコードのID。
isMobileContextbooleanURLがモバイル (true) か、それ以外 (false) かを示すブール値。

戻り値:

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

createObjectFolderForRecordId

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

戻り値:

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

createFolder

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

戻り値:

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

createFolderForRecordId

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

戻り値:

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

moveFolder

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

戻り値:

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

getUrlForFolder

パラメータ説明
recordIdidレコードのID。

戻り値:

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

createFolderForRecordIdFromTemplate

パラメータ説明
recordIdidSalesforceレコードID。
templateFolderIdstringテンプレートにするソースフォルダ。
folderNameOverridestring新しいフォルダの名前の上書き。
optCreateRootFolderbooleanルートフォルダが存在しない場合に作成するかどうかを決定するフラグ。

戻り値:

  • 新しく作成されたfolder Id
  • パラメータが正しくない場合はnull

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

getFolderAssociationsByRecordId

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

戻り値:

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

getFolderIdByRecordId

パラメータ説明
recordIdidフォルダIDを取得するSalesforceレコードID。

戻り値:

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

getRecordIdByFolderId

パラメータ説明
folderIdstringBoxフォルダID。

戻り値:

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

createFolderAssociation

パラメータ説明
recordIdidBoxフォルダに関連付けるSalesforceレコードID。
folderIdstringSalesforceレコードに関連付けるBoxフォルダID。

戻り値:

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

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

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

createCollaboration

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

戻り値:

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

createCollaborationOnRecord

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

戻り値:

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

editCollaboration

パラメータ説明
collabIdstringコラボレーションID
collabTypeenumBox.Toolkit.CollaborationType列挙型
accessTokenstring

戻り値:

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

deleteCollaboration

パラメータ説明
collabIdstringコラボレーションID
accessTokenstring

戻り値:

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

メタデータ

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

getBoxMetadataByFolderId

このメソッドでは、フォルダのメタデータインスタンスを取得エンドポイントを呼び出します。

パラメータ説明
folderIdstringメタデータを作成するBoxフォルダのID。
scopestringメタデータテンプレートのスコープ。値は[global, enterprise]のいずれかです。
template_keystringメタデータテンプレートの名前。

戻り値:

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

createBoxMetadataByFolderId

このメソッドでは、フォルダにメタデータインスタンスを作成エンドポイントを呼び出します。

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

戻り値:

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

updateBoxMetadataByFolderId

フォルダのメタデータインスタンスを更新エンドポイントを呼び出します。

パラメータ説明
folderIdstringメタデータを更新するBoxフォルダのID。
scopestringメタデータテンプレートのスコープ。値は[globalenterprise][global, enterprise]のいずれかです。
template_keystringメタデータテンプレートの名前。
mdUpdatesList<FolderMetadataUpdate>メタデータの更新。操作、パス、および値を指定します。メタデータの更新レコードは、APIと同じパターンに従います。数値型 (3000) およびCustomer;Orderなどの複数選択値は、コードサンプルにおける通常のメタデータ値と同様に、valueフィールドで文字列入力として表されます。

戻り値:

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

deleteBoxMetadataFolderId

このメソッドでは、フォルダからメタデータインスタンスを削除エンドポイントを呼び出します。

パラメータ説明
folderIdstringメタデータを更新するBoxフォルダのID。
scopestringメタデータテンプレートのスコープ。値は[globalenterprise][global, enterprise]のいずれかです。
template_keystringメタデータテンプレートの名前。

戻り値:

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

getMetadataCascadePolicyById

このメソッドでは、フォルダからメタデータカスケードポリシーを取得エンドポイントを呼び出します。このメソッドはIDを必要とするため、最初にgetMetadataCascadePoliciesByFolderIdメソッドを呼び出す必要があります。

パラメータ説明
policyIdstring取得するカスケードポリシーのID。

戻り値:

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

getMetadataCascadePoliciesByFolderId

このメソッドでは、フォルダIDを指定し、メタデータカスケードポリシーを取得エンドポイントを呼び出すことで、カスケードポリシーを取得します。

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

戻り値:

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

createMetadataCascadePolicy

このメソッドでは、BoxフォルダID、スコープ、テンプレートキーを指定し、メタデータカスケードポリシーを投稿エンドポイントを呼び出すことで、カスケードポリシーを作成します。

パラメータ説明
folderIdstringメタデータカスケードポリシーを作成するBoxフォルダのID。
scopestringメタデータカスケードポリシーのスコープ。値は [globalenterprise][global, enterprise] のいずれかです。
template_keystringテンプレートキーの名前。

戻り値:

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

deleteMetadataCascadePolicy

このメソッドでは、カスケードポリシーIDを指定し、メタデータカスケードポリシーIDを削除エンドポイントを呼び出すことで、カスケードポリシーを削除します。

パラメータ説明
policyIdstring削除するカスケードポリシーのID。

戻り値:

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

enableAppActivity

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

パラメータ説明
folderIdstringメタデータを削除するBoxフォルダのID。

戻り値:

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

SalesforceとSlack

getIntegrationMappings

このツールキットのメソッドでは、統合マッピングを取得エンドポイントを呼び出して既存のマッピングを取得します。

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

戻り値:

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

createIntegrationMapping

このツールキットのメソッドでは、統合マッピングを取得エンドポイントを呼び出してマッピングを作成します。

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

パラメータ説明
integrationStringSlackは、現在唯一サポートされている値です。
mappingIntegrationMappingApex定義タイプIntegrationMapping

戻り値:

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

deleteIntegrationMapping

このツールキットのメソッドでは、統合マッピングを削除エンドポイントを呼び出してマッピングを削除します。

パラメータ説明
integrationStringSlackは、現在唯一サポートされている値です。
integrationMappingIdStringgetIntegrationMappingsから取得されます。

戻り値:

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

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で提供されるフローテンプレートで使用されています。

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

パラメータ説明
recordIdIDSalesforceレコードID。
slackChanneldString
slackWorkspaceOrOrgIdStringBox for Slackが組織全体でインストールされている場合は、オーガナイゼーションID (E1234567など) またはワークスペースID (T5555555など) を指定します。

戻り値:

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

setSlackChannelAccessManagementDisabled

このツールキットのメソッドでは、統合マッピングを更新エンドポイントを呼び出して、アクセス管理の非アクティブ化設定を更新します。

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

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

戻り値:

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