我正在尝试使用Python客户端从Google Drive REST API获取字段'emailAddress'。我正在使用权限端点。
我尝试使用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(,我应该能够通过fields
参数来查询emailAddress
。
这是API的问题,还是因为响应中有多个权限对象?
- 您想使用drive.permissions.list。 的
fields
仅检索emailAddress
的列表如果我的理解是正确的,那么如何使用以下fields
?请按以下方式修改。
来自:
service.permissions().list(fileId = 'my-file-id', fields = 'emailAddress').execute()
to:
service.permissions().list(fileId = 'my-file-id', fields = 'permissions/emailAddress').execute()
参考:
- 权限
如果我误解了您的问题,这不是您想要的结果,我深表歉意。