액세스 제안은 요청자가 승인자에게 수신자에게 Google Drive 항목에 대한 액세스 권한을 부여하도록 제안하는 것입니다.
승인자는 Drive 파일 전반에서 해결되지 않은 모든 액세스 제안을 검토하고 조치를 취할 수 있습니다. 즉, 액세스 제안을 프로그래매틱 방식으로 쿼리한 다음 해결하여 승인 절차를 빠르게 진행할 수 있습니다. 또한 승인자가 제안을 집계하여 볼 수 있습니다.
Google Drive API는 accessproposals 리소스를 제공하므로 대기 중인 액세스 제안을 확인하고 해결할 수 있습니다. accessproposals 리소스의 메서드는 파일, 폴더, 공유 드라이브 내 파일에서 작동하지만 공유 드라이브에서는 작동하지 않습니다.
다음 용어는 액세스 제안에만 해당합니다.
요청자: Drive 항목에 대한 액세스 제안을 시작하는 사용자입니다.
수신자: 액세스 제안이 승인된 경우 파일에 대한 추가 권한을 받는 사용자입니다. 수신자는 요청자와 동일한 경우가 많지만 항상 그런 것은 아닙니다.
승인자: 액세스 제안을 승인 (또는 거부)하는 사용자입니다. 일반적으로 문서의 소유자이거나 문서를 공유할 수 있기 때문입니다.
대기 중인 액세스 제안 목록
Drive 항목의 모든 대기 중인 액세스 제안을 나열하려면 accessproposals 리소스에서 list() 메서드를 호출하고 fileId 경로 매개변수를 포함합니다.
파일의 승인자만 파일의 대기 중인 제안을 나열할 수 있습니다. 승인자는 파일에 대한 can_approve_access_proposals 기능이 있는 사용자입니다. 요청자가 승인자가 아니면 빈 목록이 반환됩니다. capabilities에 관한 자세한 내용은 파일 기능 이해를 참고하세요.
AccessProposal 객체에는 요청자, 수신자, 요청자가 추가한 메시지 등 각 제안에 관한 정보가 포함됩니다. 또한 요청자가 제안한 role를 view와 그룹화하는 AccessProposalRoleAndView 객체도 포함됩니다. role은 반복 필드이므로 제안마다 여러 개가 있을 수 있습니다. 예를 들어 제안에는 role=reader 및 view=published의 AccessProposalRoleAndView 객체와 role=writer 값만 있는 추가 AccessProposalRoleAndView 객체가 있을 수 있습니다. 자세한 내용은 뷰를 참고하세요.
다음 쿼리 매개변수를 전달하여 액세스 제안의 페이지로 나누기를 맞춤설정하거나 액세스 제안을 필터링합니다.
pageToken: 이전 목록 호출에서 수신된 페이지 토큰입니다. 후속 페이지를 가져오려면 이 토큰을 제공하세요.
pageSize: 페이지당 반환할 최대 액세스 제안 수입니다.
대기 중인 액세스 제안 해결
Drive 항목에서 대기 중인 모든 액세스 제안을 해결하려면 accessproposals 리소스에서 resolve() 메서드를 호출하고 fileId 및 proposalId 경로 매개변수를 포함합니다.
resolve() 메서드에는 제안에 대해 취할 조치를 나타내는 action 쿼리 매개변수가 포함됩니다. Action 객체는 제안의 상태 변경을 추적하므로 수락 또는 거부 여부를 알 수 있습니다.
resolve() 메서드에는 role 및 view의 선택적 쿼리 매개변수도 포함됩니다. 지원되는 역할은 writer, commenter, reader뿐입니다. 역할을 지정하지 않으면 기본값은 reader입니다. send_notification의 추가 선택적 쿼리 매개변수를 사용하면 제안이 수락되거나 거부될 때 요청자에게 이메일 알림을 보낼 수 있습니다.
list() 메서드와 마찬가지로 제안을 해결하는 사용자에게는 파일에 대한 can_approve_access_proposals 기능이 있어야 합니다. capabilities에 관한 자세한 내용은 파일 기능 이해를 참고하세요.
제안은 Drive 리소스 공유 시나리오에 나열된 것과 동일한 패턴을 사용하여 해결됩니다. 동일한 사용자에 대해 역할이 다른 제안이 여러 개 있는 경우 다음이 적용됩니다.
한 제안이 수락되고 다른 제안이 거부되면 수락된 역할이 Drive 항목에 적용됩니다.
두 제안이 동시에 수락되면 권한이 더 높은 제안 (예: role=writer 대 role=reader)이 적용됩니다. 다른 액세스 제안이 항목에서 삭제됩니다.
resolve() 메서드에 제안을 전송하면 공유 작업이 완료됩니다. AccessProposal이 더 이상 list() 메서드를 통해 반환되지 않습니다. 제안이 수락되면 사용자는 permissions 컬렉션을 사용하여 파일 또는 폴더의 권한을 업데이트해야 합니다. 자세한 내용은 권한 업데이트를 참고하세요.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-29(UTC)"],[],[],null,["# Manage pending access proposals\n\nAn *access proposal* is a proposal from a requester to an approver to grant a\nrecipient access to a Google Drive item.\n\nAn approver can review and act on all unresolved access proposals across\nDrive files. This means you can speed up the approval process by\nprogrammatically querying for access proposals and then resolving them. It also\nallows proposals to be viewed in aggregate by an approver.\n\nThe Google Drive API provides the\n[`accessproposals`](/workspace/drive/api/reference/rest/v3/accessproposals) resource so you can view\nand resolve pending access proposals. The methods of the `accessproposals`\nresource work on files, folders, the files within a shared drive but *not* on\nthe shared drive.\n\nThe following terms are specific to access proposals:\n\n- **Requester**: The user initiating the access proposal to a Drive item.\n- **Recipient**: The user receiving the additional permissions on a file if the access proposal is granted. Many times the recipient is the same as the requester but not always.\n- **Approver**: The user responsible for approving (or denying) the access proposal. This is typically because they're an owner on the document or they have the ability to share the document.\n\n| **Important:** Access proposals can't be created using the Drive API. Users must request access using the Drive UI. For more information, see [Get permission to open a file or\n| folder](https://support.google.com/docs/answer/6211862).\n\n### List pending access proposals\n\nTo list all pending access proposals on a Drive item, call the\n[`list()`](/workspace/drive/api/reference/rest/v3/accessproposals/list) method on the\n[`accessproposals`](/workspace/drive/api/reference/rest/v3/accessproposals) resource and include the\n`fileId` path parameter.\n\nOnly approvers on a file can list the pending proposals on a file. An approver\nis a user with the `can_approve_access_proposals` capability on the file. If the\nrequester isn't an approver, an empty list is returned. For more information\nabout `capabilities`, see [Understand file\ncapabilities](/workspace/drive/api/guides/manage-sharing#capabilities).\n\nThe [response body](/workspace/drive/api/reference/rest/v3/accessproposals/list#response-body)\nconsists of an\n[`AccessProposal`](/workspace/drive/api/reference/rest/v3/accessproposals/list#accessproposal)\nobject representing a list of unresolved access proposals on the file.\n\nThe `AccessProposal` object includes info about each proposal such as the\nrequester, the recipient, and the message that the requester added. It also\nincludes an\n[`AccessProposalRoleAndView`](/workspace/drive/api/reference/rest/v3/accessproposals/list#accessproposalroleandview)\nobject that groups the requester's proposed `role` with a `view`. Since `role`\nis a repeated field, multiples could exist for each proposal. For example, a\nproposal might have an `AccessProposalRoleAndView` object of `role=reader` and\n`view=published`, plus an additional `AccessProposalRoleAndView` object with\nonly the `role=writer` value. For more information, see\n[Views](/workspace/drive/api/guides/ref-roles#views).\n\nPass the following query parameters to customize pagination of, or filter,\naccess proposals:\n\n- `pageToken`: A page token, received from a previous list call. Provide this\n token to retrieve the subsequent page.\n\n- `pageSize`: The maximum number of access proposals to return per page.\n\n### Resolve pending access proposals\n\nTo resolve all pending access proposals on a Drive\nitem, call the [`resolve()`](/workspace/drive/api/reference/rest/v3/accessproposals/resolve) method\non the [`accessproposals`](/workspace/drive/api/reference/rest/v3/accessproposals) resource and\ninclude the `fileId` and `proposalId` path parameters.\n\nThe `resolve()` method includes an `action` query parameter that denotes the\naction to take on the proposal. The\n[`Action`](/workspace/drive/api/reference/rest/v3/accessproposals/resolve#action) object tracks the\nstate change of the proposal so we know if it's being accepted or denied.\n\nThe `resolve()` method also includes the optional query parameters of `role` and\n`view`. The only supported roles are `writer`, `commenter`, and `reader`. If the\nrole isn't specified, it defaults to `reader`. An additional optional query\nparameter of `send_notification` lets you send an email notification to the\nrequester when the proposal is accepted or denied.\n\nJust as with the `list()` method, users resolving the proposal must have the\n`can_approve_access_proposals` capability on the file. For more information\nabout `capabilities`, see [Understand file\ncapabilities](/workspace/drive/api/guides/manage-sharing#capabilities).\n\nProposals are resolved using the same patterns listed under [Scenarios for\nsharing Drive\nresources](/workspace/drive/api/guides/manage-sharing#sharing-drive-resources). If there are\nmultiple proposals for the same user, but with different roles, the following\napplies:\n\n- If one proposal is accepted and one is denied, the accepted role applies to the Drive item.\n- If both proposals are accepted at the same time, the proposal with the higher permission (for example, `role=writer` versus `role=reader`) is applied. The other access proposal is removed from the item.\n\nAfter sending a proposal to the `resolve()` method, the sharing action is\ncomplete. The `AccessProposal` is no longer returned through the `list()`\nmethod. Once the proposal is accepted, the user must use the [`permissions`](/workspace/drive/api/reference/rest/v3/permissions) collection to update permissions on a file or\nfolder. For more information, see [Update\npermissions](/workspace/drive/api/guides/manage-sharing#update-permissions).\n\nRelated topics\n--------------\n\n- [Share files, folders, and drives](/workspace/drive/api/guides/manage-sharing)"]]