Предложение о доступе — это предложение от запрашивающей стороны утверждающей стороне о предоставлении получателю доступа к элементу Google Диска.
Утверждающий может просматривать все неразрешённые предложения по доступу к файлам на Диске и принимать по ним решения. Это означает, что вы можете ускорить процесс утверждения, программно запрашивая предложения по доступу и затем разрешая их. Кроме того, утверждающий может просматривать все предложения в совокупности.
API Google Диска предоставляет ресурс accessproposals
, позволяющий просматривать и обрабатывать ожидающие заявки на доступ. Методы ресурса accessproposals
работают с файлами, папками и файлами на общем диске, но не на самом общем диске.
Следующие термины относятся к предложениям по доступу:
- Запрашивающая сторона : пользователь, инициирующий предложение о доступе к элементу Диска.
- Получатель : пользователь, получающий дополнительные разрешения на доступ к файлу в случае одобрения запроса. Часто получатель совпадает с запрашивающим, но не всегда.
- Утверждающий : пользователь, ответственный за одобрение (или отклонение) предложения о доступе. Обычно это происходит, если он является владельцем документа или имеет право предоставить к нему доступ.
Список ожидающих предложений по доступу
Чтобы составить список всех ожидающих предложений доступа к элементу Диска, вызовите метод list()
ресурса accessproposals
и включите параметр пути fileId
.
Только утверждающие могут перечислять ожидающие предложения по файлу. Утверждающий — это пользователь с полномочиями can_approve_access_proposals
для файла. Если запросчик не является утверждающим, возвращается пустой список. Подробнее о capabilities
см. в разделе «Ознакомление с возможностями файла» .
Тело ответа состоит из объекта AccessProposal
, представляющего список неразрешенных предложений доступа к файлу.
Объект AccessProposal
содержит информацию о каждом предложении, такую как инициатор запроса, получатель и добавленное инициатором сообщение. Он также включает объект AccessProposalRoleAndView
, который группирует предложенную инициатором запроса role
с view
. Поскольку поле role
повторяется, для каждого предложения может существовать несколько таких полей. Например, предложение может иметь объект AccessProposalRoleAndView
со значением role=reader
и view=published
, а также дополнительный объект AccessProposalRoleAndView
только со значением role=writer
. Подробнее см. в разделе Views .
Передайте следующие параметры запроса для настройки пагинации или фильтрации предложений доступа:
pageToken
: токен страницы, полученный при предыдущем вызове списка. Укажите этот токен для получения следующей страницы.pageSize
: максимальное количество предложений доступа, возвращаемых на страницу.
Решить ожидающие предложения по доступу
Чтобы разрешить все ожидающие предложения по доступу к элементу Диска, вызовите метод resolve()
для ресурса accessproposals
и включите параметры пути fileId
и proposalId
.
Метод resolve()
включает параметр запроса action
, который определяет действие, которое необходимо выполнить над предложением. Объект Action
отслеживает изменение состояния предложения, чтобы мы знали, принимается оно или отклоняется.
Метод resolve()
также включает необязательные параметры запроса role
и view
. Поддерживаются только роли writer
, commenter
и reader
. Если роль не указана, по умолчанию используется reader
. Дополнительный необязательный параметр запроса send_notification
позволяет отправлять уведомление по электронной почте инициатору запроса при принятии или отклонении предложения.
Как и в случае с методом list()
, пользователи, принимающие решение по предложению, должны иметь право can_approve_access_proposals
для файла. Подробнее о capabilities
см. в разделе «Общие сведения о возможностях файла» .
Предложения обрабатываются по тем же шаблонам, что и в разделе «Сценарии совместного использования ресурсов Диска» . Если для одного и того же пользователя, но с разными ролями, имеется несколько предложений, применяются следующие правила:
- Если одно предложение принято, а другое отклонено, принятая роль применяется к элементу Диска.
- Если оба предложения принимаются одновременно, применяется предложение с более высоким уровнем доступа (например,
role=writer
а неrole=reader
). Другое предложение доступа удаляется из элемента.
После отправки предложения методу resolve()
действие по предоставлению доступа завершается. AccessProposal
больше не возвращается методом list()
. После принятия предложения пользователь должен использовать коллекцию permissions
для обновления разрешений для файла или папки. Подробнее см. в разделе Обновление разрешений .