Google 驱动器 API 客户端 (Python):检索权限
Google Drive API Client (Python): retrieve permissions
我收到关于 Google 驱动器 API example.Can 的错误,你能帮帮我吗?
我使用了一个旧的 Google 项目(使用 Blogger API - 工作得很好)通过添加新的 API for Google Drive into Google 项目。
我创建了一个新的 python 文件并尝试处理 Google 驱动器 API。
我使用了相同的 json 凭据。
我的源代码:https://paste.fedoraproject.org/paste/xTH1zf3tEtLH5~zvuAHf8Q
def retrieve_permissions(service, file_id):
"""Retrieve a list of permissions.
Args:
service: Drive API service instance.
file_id: ID of the file to retrieve permissions for.
Returns:
List of permissions.
"""
try:
permissions = service.permissions().list(fileId=file_id).execute()
return permissions.get('items', [])
except errors.HttpError, error:
print 'An error occurred: %s' % error
return None
主要功能:
if __name__ == '__main__':
served = get_service()
print "-------"
print retrieve_permissions(served,'client_secret_driv.json')
print "======="
错误是
C:\Python27\python.exe C:/Python27/goo_drive_002.py
-------
An error occurred: <HttpError 403 when requesting https://www.googleapis.com/drive/v3/files/client_secret_driv.json/permissions?alt=json returned "Insufficient Permission">
None
=======
Process finished with exit code 0
修改点:
- 为了检索文件的权限,需要文件 ID。在您的脚本中,为
service.permissions().list(fileId=file_id).execute()
的 fileID
指定了文件名。所以会出现错误。为此,它使用 service.files().list()
. 从文件名中检索文件 ID
- 当您需要响应中的权限数据时,请将
permissions.get('items', [])
更改为permissions.get('permissions', [])
修改脚本:
file_name = 'client_secret_driv.json'
file_id = service.files().list(q="name='" + file_name + "' and trashed=false", fields="files(id)").execute()
permissions = service.permissions().list(fileId=file_id["files"][0]["id"]).execute()
result = permissions.get('permissions', [])
如果我误解了你的问题,我很抱歉。
我收到关于 Google 驱动器 API example.Can 的错误,你能帮帮我吗? 我使用了一个旧的 Google 项目(使用 Blogger API - 工作得很好)通过添加新的 API for Google Drive into Google 项目。 我创建了一个新的 python 文件并尝试处理 Google 驱动器 API。 我使用了相同的 json 凭据。
我的源代码:https://paste.fedoraproject.org/paste/xTH1zf3tEtLH5~zvuAHf8Q
def retrieve_permissions(service, file_id):
"""Retrieve a list of permissions.
Args:
service: Drive API service instance.
file_id: ID of the file to retrieve permissions for.
Returns:
List of permissions.
"""
try:
permissions = service.permissions().list(fileId=file_id).execute()
return permissions.get('items', [])
except errors.HttpError, error:
print 'An error occurred: %s' % error
return None
主要功能:
if __name__ == '__main__':
served = get_service()
print "-------"
print retrieve_permissions(served,'client_secret_driv.json')
print "======="
错误是
C:\Python27\python.exe C:/Python27/goo_drive_002.py
-------
An error occurred: <HttpError 403 when requesting https://www.googleapis.com/drive/v3/files/client_secret_driv.json/permissions?alt=json returned "Insufficient Permission">
None
=======
Process finished with exit code 0
修改点:
- 为了检索文件的权限,需要文件 ID。在您的脚本中,为
service.permissions().list(fileId=file_id).execute()
的fileID
指定了文件名。所以会出现错误。为此,它使用service.files().list()
. 从文件名中检索文件 ID
- 当您需要响应中的权限数据时,请将
permissions.get('items', [])
更改为permissions.get('permissions', [])
修改脚本:
file_name = 'client_secret_driv.json'
file_id = service.files().list(q="name='" + file_name + "' and trashed=false", fields="files(id)").execute()
permissions = service.permissions().list(fileId=file_id["files"][0]["id"]).execute()
result = permissions.get('permissions', [])
如果我误解了你的问题,我很抱歉。