«Неправильный выбор поля emailAddress» из списка service.permissions (). С Google Drive API - PullRequest
1 голос
/ 24 мая 2019

Я пытаюсь получить поле 'emailAddress' из API Google Drive REST с помощью клиента python. Я использую конечную точку разрешения.

Я пытался использовать функции list() и get(), и только get() работает.


list () запрос
# my-file-id is a placeholder

service.permissions().list(fileId = 'my-file-id', fields = 'emailAddress').execute()

возвращается:

googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/drive/v3/files/my-file-id/permissions?fields=emailAddress&alt=json returned "Invalid field selection emailAddress">


запрос get ()
# my-permission-id and my-file-id are placeholders

service.permissions().get(fileId = 'my-file-id', permissionId = 'my-permission-id', fields = 'emailAddress').execute()

возвращается:

{'emailAddress': 'expected@email.com'}

Использование конечной точки * с list() возвращает все ожидаемые поля:

# my-file-id is a placeholder
service.permissions().list(fileId='my-file-id',fields='*').execute()

возвращается:

{'kind': 'drive#permissionList', 'permissions': [{'kind': 'drive#permission', 'id': '****', 'type': 'user', 'emailAddress': 'expected@email.com', 'role': 'writer', 'displayName': '****', 'photoLink': '****', 'deleted': False}, {'kind': 'drive#permission', 'id': '****', 'type': 'user', 'emailAddress': 'expected@email.com', 'role': 'owner', 'displayName': '****', 'deleted': False}]}

В этом случае есть два пользователя с разрешениями на этот конкретный файл.

Согласно документации (https://developers.google.com/drive/api/v3/reference/permissions/list) я должен иметь возможность запросить emailAddress через параметр fields.

Это проблема с API или из-за того, что в ответе есть несколько объектов разрешений?

1 Ответ

1 голос
/ 25 мая 2019
  • Вы хотите получить список только emailAddress, используя fields из drive.permissions.list.

Если мое понимание верно, как насчет использования следующего fields? Пожалуйста, измените следующим образом.

От:

service.permissions().list(fileId = 'my-file-id', fields = 'emailAddress').execute()

Кому:

service.permissions().list(fileId = 'my-file-id', fields = 'permissions/emailAddress').execute()

Справка:

Если я неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...