メインコンテンツへスキップ
一般的に、アプリケーションでは以下のようにサービス利用規約を使用します。 ユーザーとして認証されたアプリケーションが、関連するサービス利用規約にユーザーが同意している必要があるBox内の項目にアクセスしようとすると、TERMS_OF_SERVICE_REQUIREDエラーが返されます。
{
  "type": "error",
  "status": 400,
  "code": "terms_of_service_required",
  "context_info": {
    "tos_id": 261346614,
    "tos_user_status_id": 4562456
  },
  "help_url": "https://developer.box.com/guides/api-calls/permissions-and-errors/common-errors/",
  "message": "User must accept custom terms of service before action can be taken",
  "request_id": "ADF7722DD"
}
アプリケーションは、を呼び出してサービス利用規約の情報をリクエストします。
{
  "id": 261346614,
  "type": "terms_of_service",
  "status": "enabled",
  "enterprise": {
    "id": 11446498,
    "type": "enterprise",
    "name": "Acme Inc."
  },
  "tos_type": "managed",
  "text": "By using this service, you agree to ...",
  "created_at": "2012-12-12T10:53:43-08:00",
  "modified_at": "2012-12-12T10:53:43-08:00"
}
その後、アプリケーションはサービス利用規約のテキストをユーザーに表示できます。 ユーザーが利用規約を同意または拒否すると、最初のエラーによってレスポンスでtos_user_status_idが返されたかどうかに応じて、またはが呼び出されます。

サーバー認証とユーザー代理操作

JWT、クライアント資格情報許可 (CCG)、またはOAuth 2.0を使用するアプリケーションは、、または管理対象ユーザーとして動作することができます。サービス利用規約の適用は、APIリクエストのコンテキスト上のユーザーによって異なります。
シナリオ管理対象ユーザー用サービス利用規約未承認の場合にブロックされるか
サービスアカウントまたはApp UserのトークンでAPIを呼び出す (As-Userなし)いいえ — ヘッドレスユーザーは対象外
CCG/JWTとヘッダーで管理対象ユーザーを指定してAPIを呼び出すはいAs-Userで指定したユーザーが承認済みである必要がある
管理対象ユーザー向けのユーザーアクセストークンを発行するはい — サービス利用規約に同意するまでトークンは発行されない
管理対象ユーザー向けのOAuth認可コードフローはい — サービス利用規約に同意するまで認可されない
As-UserでサービスアカウントまたはApp Userを指定してAPIを呼び出すいいえ — ヘッドレスユーザーは対象外

プログラムによるサービス利用規約への同意

管理対象ユーザーが管理対象ユーザー用サービス利用規約に同意していない場合、そのユーザーに代わって行われるほとんどのAPIコールはterms_of_service_requiredを返します。ユーザーにBox Webアプリケーションへのサインインを求めずに解決するには、次の手順を実行します。
  1. サーバー認証のアクセストークン (JWTまたはCCG) を取得します。
  2. ヘッダーに管理対象ユーザーのIDを設定し、以降のリクエストがそのユーザーのコンテキストで実行されるようにします。
  3. サービス利用規約への同意が未完了でも利用できるサービス利用規約のエンドポイントを呼び出します。
    • 規約のテキストを取得する:
    • 同意または拒否する: または
  4. 元のAPIコールを再試行します。
管理者は、As-Userヘッダーを使用してそのユーザーとして動作せずに、他のユーザーの管理対象ユーザー用サービス利用規約に同意することはできません。同意は、サービス利用規約の対象となるユーザーに対して記録される必要があります。