我在使用Google Drive API示例时遇到此错误。您能帮助我吗? 我使用了一个旧的Google项目(使用Blogger API - 运行良好),为Google项目添加了新的Google Drive启用API。 我制作了一个新的python文件,并尝试处理Google Drive 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
答案 0 :(得分:0)
fileID
service.permissions().list(fileId=file_id).execute()
提供了文件名。所以发生错误。为此,它使用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', [])
如果我误解了你的问题,我很抱歉。