带有Google云端硬盘API的service.permissions()。list中的“无效的字段选择电子邮件地址”

时间:2019-05-24 15:53:01

标签: python google-drive-api

我正在尝试使用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),我应该能够通过emailAddress参数查询fields

这是API的问题,还是因为响应中有多个权限对象?

1 个答案:

答案 0 :(得分:1)

  • 您只想使用emailAddress从drive.permissions.list中检索fields的列表。

如果我的理解正确,那么如何使用以下fields?请进行如下修改。

发件人:

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

收件人:

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

参考:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。