アクセス プロポーザルとは、リクエスト元が承認者に送信する、受信者に Google ドライブ アイテムへのアクセス権を付与するためのプロポーザルです。
承認者は、ドライブ ファイル全体で未解決のアクセス提案をすべて確認して対応できます。つまり、アクセス提案をプログラムでクエリして解決することで、承認プロセスを迅速化できます。また、承認者が提案をまとめて確認することもできます。
Google Drive API は、保留中のアクセス提案を表示して解決できるように accessproposals リソースを提供します。accessproposals リソースのメソッドは、ファイル、フォルダ、共有ドライブ内のファイルに対して機能しますが、共有ドライブに対しては機能しません。
次の用語は、アクセス提案に固有のものです。
- リクエスト元: ドライブ アイテムへのアクセス提案を開始したユーザー。
- 受信者: アクセス提案が承認された場合に、ファイルに対する追加の権限を受け取るユーザー。多くの場合、受信者はリクエストしたユーザーと同じですが、常にそうであるとは限りません。
- 承認者: アクセス提案の承認(または拒否)を担当するユーザー。通常、これはドキュメントのオーナーであるか、ドキュメントを共有できる権限を持っているためです。
fields パラメータを使用する
レスポンスで返すフィールドを指定する場合は、accessproposals リソースの任意の方法で fields システム パラメータを設定できます。fields パラメータを省略すると、サーバーはメソッドに固有のデフォルトのフィールド セットを返します。別のフィールドを返す場合は、特定のフィールドを返すをご覧ください。
保留中のアクセス提案を取得する
アクセス提案を取得するには、fileId パスパラメータと proposalId パスパラメータを指定して、accessproposals リソースの get メソッドを使用します。提案 ID がわからない場合は、list メソッドを使用して保留中のアクセス提案を一覧表示できます。
保留中のアクセス候補を一覧表示する
ドライブ アイテムの保留中のアクセス提案をすべて一覧表示するには、accessproposals リソースの list メソッドを呼び出し、fileId パスパラメータを含めます。
ファイルの承認者のみが、ファイルで保留中の提案を一覧表示できます。承認者は、ファイルに対する can_approve_access_proposals 権限を持つユーザーです。リクエスト元が承認者でない場合は、空のリストが返されます。capabilities の詳細については、ファイルの機能についてをご覧ください。
レスポンスの本文は、ファイルに対する未解決のアクセス提案のリストを表す accessproposals オブジェクトで構成されます。
accessproposals オブジェクトには、リクエスト元、受信者、リクエスト元が追加したメッセージなど、各提案に関する情報が含まれます。また、リクエスト元が提案した role を view とグループ化する RoleAndView オブジェクトも含まれます。role は繰り返しフィールドであるため、プロポーザルごとに複数の値が存在する可能性があります。たとえば、提案には role=reader と view=published の RoleAndView オブジェクトと、role=writer 値のみを含む追加の RoleAndView オブジェクトが含まれる場合があります。詳細については、ビューをご覧ください。
次のクエリ パラメータを渡して、アクセス提案のページネーションをカスタマイズするか、アクセス提案をフィルタします。
pageToken: 前回のリスト呼び出しから受け取ったページトークン。後続のページを取得するには、このトークンを指定します。pageSize: ページごとに返すアクセス提案の最大数。
保留中のアクセス候補を解決する
ドライブ アイテムの保留中のアクセス提案をすべて解決するには、accessproposals リソースの resolve メソッドを呼び出し、fileId と proposalId のパス パラメータを含めます。
resolve メソッドには、提案に対して行うアクションを示す action クエリ パラメータが含まれています。Action オブジェクトは提案の状態変化を追跡し、承認または拒否されたかどうかを把握します。
resolve メソッドには、role と view のオプションのクエリ パラメータも含まれています。サポートされているロールは writer、commenter、reader のみです。ロールが指定されていない場合、デフォルトは reader です。詳細については、ロールと権限をご覧ください。sendNotification の追加の省略可能なクエリ パラメータを使用すると、プロポーザルが承認または拒否されたときにリクエスト元にメール通知を送信できます。
list メソッドと同様に、提案を解決するユーザーはファイルに対する can_approve_access_proposals 権限を持っている必要があります。capabilities の詳細については、ファイルの機能についてをご覧ください。
提案は、ドライブ リソースの共有に関するシナリオに記載されているパターンと同じパターンを使用して解決されます。同じユーザーに対して複数の提案があり、ロールが異なる場合は、次のようになります。
- 1 つの提案が承認され、1 つが拒否された場合、承認されたロールがドライブ アイテムに適用されます。
- 両方の提案が同時に承認された場合は、権限の高い提案(
role=writerとrole=readerなど)が適用されます。他のアクセス提案がアイテムから削除されます。
resolve メソッドに提案を送信すると、共有アクションが完了します。解決済みのアクセス提案が list メソッドで返されなくなりました。提案が承認されたら、ユーザーは permissions リソースを使用して、ファイルまたはフォルダの権限を更新する必要があります。詳細については、更新権限をご覧ください。