承認機能を管理する

このドキュメントでは、Google Drive API で承認を管理する方法について説明します。

ユーザーは Google ドライブのドキュメントを正式な承認プロセスに通すことができます。このプロセスを使用して、契約の審査や公式文書の公開前に承認を得ることができます。承認では、レビューのステータス(進行中、承認済み、不承認など)と、関与した審査担当者の両方が追跡されます。承認は、コンテンツを検証し、レビュー担当者の記録を保持する優れた方法です。

ドライブでコンテンツの承認を作成、管理できます。Google Drive API は、ファイルの承認を処理するための approvals リソースを提供します。approvals リソースのメソッドは、ドライブ、Google ドキュメント、その他の Google Workspace エディタ内のアイテムで動作します。レビュー担当者はドキュメントに対して、承認または却下したり、フィードバックしたりできます。

始める前に

  1. ファイルには canStartApproval ケーパビリティが含まれている必要があります。ファイルの機能を確認するには、fileId パス パラメータを使用して files リソースの get メソッドを呼び出し、fields パラメータの canStartApproval 機能フィールドを使用します。詳細については、ファイルの機能についてをご覧ください。

    ブール値の canStartApproval 機能は、次の場合は false です。

    • 管理者の設定により、この機能へのアクセスが制限されています。
    • ご利用の Google Workspace エディションが対象外である。
    • ファイルはドメイン外のユーザーが所有しています。
    • ユーザーにはファイルに対する role=writer 権限がありません。
  2. 対象ファイルを審査担当者と手動で共有してください。この設定は、ドライブによって自動的に行われることはありません。レビュー担当者がファイルにアクセスできない場合、承認リクエストは成功しますが、通知は届かず、ファイルを表示することもできません。

コンセプト

次の主要なコンセプトが承認の基盤となります。

承認ステータス

ドキュメントの承認をリクエストすると、承認プロセスによってすべてのレビュー担当者が同じバージョンのコンテンツを承認します。確認担当者がリクエストを承認した後、リクエストが完了する前にファイルが編集された場合、確認担当者の承認はリセットされ、確認担当者は新しいバージョンを承認する必要があります。最終承認後にコンテンツが編集された場合、現在のバージョンが承認されたバージョンと異なることを示すバナーがドキュメントに表示されます。

approvals リソースには、リソースがリクエストされたときの承認のステータスを詳しく説明する Status オブジェクトが含まれています。また、特定の審査担当者による承認に対するレスポンスの詳細を示す ReviewerResponse オブジェクトも含まれます。各レビュー担当者の回答は、Response オブジェクトで表されます。

承認プロセスの各アクションでは、メール通知が生成され、開始者(承認をリクエストしたユーザー)とすべての審査担当者に送信されます。また、承認アクティビティ ログにも追加されます。

すべてのレビューアが承認を承認する必要があります。承認を拒否したレビューアがいる場合、完了ステータスは DECLINED に設定されます。

承認が完了すると(ステータスが APPROVEDCANCELLEDDECLINED のいずれか)、完了状態のままになり、開始者や審査担当者が操作することはできません。ステータスが IN_PROGRESS のファイルに既存の承認がない限り、完了した承認にコメントを追加できます。

承認のライフサイクル

承認のライフサイクル。
図 1. 承認のライフサイクル。

承認は、ライフサイクル中に複数の状態を経ます。図 1 は、承認ライフサイクルの大まかな手順を示しています。

  1. 承認を開始します。start を呼び出して、承認リクエストを開始します。statusIN_PROGRESS に設定されます。

  2. 承認待ちです。承認が保留中(statusIN_PROGRESS に設定されている)の間は、開始者と審査担当者の両方が操作できます。comment を追加したり、開始者がレビュー担当者を reassign したり、1 人以上のレビュー担当者がリクエストを approve したりできます。

  3. 承認が完了状態である。すべてのレビュー担当者がリクエストを承認した場合、開始者がリクエストを cancel した場合、またはレビュー担当者がリクエストを decline した場合、承認は完了状態(statusAPPROVEDCANCELLEDDECLINED のいずれかに設定される)になります。

fields パラメータを使用する

レスポンスで返すフィールドを指定する場合は、approvals リソースの任意の方法で fields システム パラメータを設定できます。fields パラメータを省略すると、サーバーはメソッドに固有のデフォルトのフィールド セットを返します。別のフィールドを返すには、特定のフィールドを返すをご覧ください。

承認を開始して管理する

approvals リソースを使用すると、Drive API を使用して承認を開始および管理できます。これらのメソッドは、ファイル メタデータの書き込みを許可する既存の OAuth 2.0 Drive API スコープのいずれでも使用できます。詳細については、Google Drive API のスコープを選択するをご覧ください。

承認を開始する

ファイルで新しい承認を開始するには、approvals リソースで start メソッドを使用し、fileId パスパラメータを含めます。

リクエストの本文は、ファイルを確認するよう割り当てられた審査担当者のメールアドレスを含む文字列の配列である必須の reviewerEmails フィールドで構成されます。各レビュー担当者のメールアドレスは Google アカウントに関連付けられている必要があります。関連付けられていない場合、リクエストは失敗します。また、次の 3 つのオプション フィールドが用意されています。

  • dueTime: 承認の期限(RFC 3339 形式)。
  • lockFile: 承認の開始時にファイルをロックするかどうかを示すブール値。これにより、承認プロセス中にユーザーがファイルを変更できなくなります。role=writer 権限を持つユーザーは、このロックを解除できます。
  • message: レビュー担当者に送信されるカスタム メッセージ。

レスポンスの本文には approvals リソースのインスタンスが含まれ、承認をリクエストしたユーザーである initiator フィールドが含まれます。承認 StatusIN_PROGRESS に設定されます。

StatusIN_PROGRESS の既存の承認が存在する場合、start メソッドは失敗します。承認を開始できるのは、ファイルに既存の承認がない場合、または既存の承認が完了状態(ステータスが APPROVEDCANCELLEDDECLINED)の場合のみです。

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals:start' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "reviewerEmails": [
     "reviewer1@example.com",
     "reviewer2@example.com"
    ],
    "dueTime": "2026-04-01T15:01:23Z",
    "lockFile": true,
    "message": "Please review this file for approval."
 }'

次のように置き換えます。

  • FILE_ID: 承認の対象となるファイルの ID。
  • ACCESS_TOKEN: アプリの OAuth 2.0 トークン。

承認に関するコメント

承認にコメントするには、approvals リソースで comment メソッドを使用し、fileId パスパラメータと approvalId パスパラメータを含めます。

リクエストの本文は、承認に追加するコメントを含む文字列である必須の message フィールドで構成されます。

レスポンスの本文には approvals リソースのインスタンスが含まれます。メッセージは通知として承認の開始者と審査者に送信され、承認アクティビティ ログにも記録されます。

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:comment' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The required comment on the approval."
 }'

次のように置き換えます。

  • FILE_ID: 承認の対象となるファイルの ID。
  • APPROVAL_ID: 承認の ID。
  • ACCESS_TOKEN: アプリの OAuth 2.0 トークン。

承認時に審査担当者を再割り当てする

承認の審査担当者を再割り当てするには、approvals リソースで reassign メソッドを使用し、fileId パスパラメータと approvalId パスパラメータを含めます。

reassign メソッドを使用すると、承認の開始者(または role=writer 権限を持つユーザー)は、approvals リソースの ReviewerResponse オブジェクトで審査担当者を追加または置換できます。role=reader 権限を持つユーザーは、自分に割り当てられている承認のみを再割り当てできます。これにより、ユーザーはリクエストをより有能な審査担当者に再割り当てできます。

審査担当者を再割り当てできるのは、StatusIN_PROGRESS で、再割り当てされる審査担当者の response フィールドが NO_RESPONSE に設定されている場合のみです。

承認のレビュー担当者は削除できません。審査担当者を削除する必要がある場合は、承認をキャンセルして新しい承認を開始する必要があります。

リクエストの本文は、オプションの addReviewers フィールドと replaceReviewers フィールドで構成されます。各フィールドには、AddReviewerReplaceReviewer の繰り返しオブジェクトがあります。それぞれ、追加する審査担当者 1 人、または置き換える審査担当者のペアが 1 つ含まれています。新しい審査担当者に送信するコメントを含むオプションの message フィールドを追加することもできます。

レスポンスの本文には approvals リソースのインスタンスが含まれます。メッセージは通知として新しい審査担当者に送信され、承認アクティビティ ログにも記録されます。

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:reassign' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "addReviewers": [
    {
        "addedReviewerEmail": "new_reviewer@example.com"
    }
    ],
    "replaceReviewers": [
    {
        "addedReviewerEmail": "replacement_reviewer@example.com",
        "removedReviewerEmail": "old_reviewer@example.com"
    }
    ],
    "message": "Reassigning reviewers for this approval request."
 }'

次のように置き換えます。

  • FILE_ID: 承認の対象となるファイルの ID。
  • APPROVAL_ID: 承認の ID。
  • ACCESS_TOKEN: アプリの OAuth 2.0 トークン。

承認を取り消す

承認をキャンセルするには、approvals リソースで cancel メソッドを使用し、fileIdapprovalId のパスパラメータを指定します。

cancel メソッドは、承認 StatusIN_PROGRESS の間、承認開始者(または role=writer 権限を持つユーザー)のみが呼び出すことができます。

リクエストの本文は、承認の取り消しに伴うメッセージを含む文字列である省略可能な message フィールドで構成されます。

レスポンスの本文には approvals リソースのインスタンスが含まれます。メッセージは通知として送信され、承認アクティビティ ログにも記録されます。承認 StatusCANCELLED に設定され、完了状態になります。

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:cancel' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The optional reason for cancelling this approval request."
 }'

次のように置き換えます。

  • FILE_ID: 承認の対象となるファイルの ID。
  • APPROVAL_ID: 承認の ID。
  • ACCESS_TOKEN: アプリの OAuth 2.0 トークン。

承認を拒否する

承認を拒否するには、approvals リソースで decline メソッドを使用し、fileId パスパラメータと approvalId パスパラメータを含めます。

decline メソッドは、承認 StatusIN_PROGRESS の場合にのみ呼び出すことができます。

リクエストの本文は、承認の拒否に伴うメッセージを含む文字列である省略可能な message フィールドで構成されます。

レスポンスの本文には approvals リソースのインスタンスが含まれます。メッセージは通知として送信され、承認アクティビティ ログにも記録されます。リクエスト ユーザーの ReviewerResponse オブジェクトの response フィールドが DECLINED に設定されている。また、承認 StatusDECLINED に設定され、完了状態になります。

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:decline' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The optional reason for declining this approval request."
 }'

次のように置き換えます。

  • FILE_ID: 承認の対象となるファイルの ID。
  • APPROVAL_ID: 承認の ID。
  • ACCESS_TOKEN: アプリの OAuth 2.0 トークン。

承認を承認する

承認を承認するには、approvals リソースで approve メソッドを使用し、fileId パスパラメータと approvalId パスパラメータを指定します。

approve メソッドは、承認 StatusIN_PROGRESS の場合にのみ呼び出すことができます。

リクエストの本文は、承認に付随するメッセージを含む文字列である message フィールド(省略可)で構成されます。

レスポンスの本文には approvals リソースのインスタンスが含まれます。メッセージは通知として送信され、承認アクティビティ ログにも記録されます。リクエスト ユーザーの ReviewerResponse オブジェクトの response フィールドが APPROVED に設定されている。また、これが最後の必須の審査担当者の回答である場合、承認 StatusAPPROVED に設定され、完了状態になります。

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:approve' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The optional reason for approving this approval request."
 }'

次のように置き換えます。

  • FILE_ID: 承認の対象となるファイルの ID。
  • APPROVAL_ID: 承認の ID。
  • ACCESS_TOKEN: アプリの OAuth 2.0 トークン。

既存の承認を見つける

approvals リソースを使用して、Drive API で承認のステータスを取得して一覧表示することもできます。

ファイルの承認を表示するには、ファイルのメタデータを読み取る権限が必要です。詳細については、ロールと権限をご覧ください。

承認を受ける

ファイルに対する承認を取得するには、fileId パス パラメータと approvalId パス パラメータを指定して、approvals リソースの get メソッドを使用します。承認 ID がわからない場合は、list メソッドを使用して承認を一覧表示できます。

レスポンスの本文には approvals リソースのインスタンスが含まれます。

curl

curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Accept: application/json'

次のように置き換えます。

  • FILE_ID: 承認の対象となるファイルの ID。
  • APPROVAL_ID: 承認の ID。
  • ACCESS_TOKEN: アプリの OAuth 2.0 トークン。

承認を一覧表示する

ファイルの承認を一覧表示するには、approvals リソースの list メソッドを呼び出し、fileId パスパラメータを含めます。

レスポンス本文は、ファイルに対する承認のリストで構成されます。items フィールドには、approvals リソースの形式で各承認に関する情報が含まれます。

次のクエリ パラメータを渡して、承認のページネーションをカスタマイズしたり、承認をフィルタしたりすることもできます。

  • pageSize: ページごとに返す承認の最大数。pageSize を設定しない場合、サーバーは最大 100 件の承認を返します。

  • pageToken: 前回のリスト呼び出しから受け取ったページトークン。このトークンは、後続のページを取得するために使用されます。前のレスポンスの nextPageToken の値に設定する必要があります。

curl

curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals?pageSize=10' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Accept: application/json'

次のように置き換えます。

  • FILE_ID: 承認の対象となるファイルの ID。
  • ACCESS_TOKEN: アプリの OAuth 2.0 トークン。