我们在Google App Engine应用程序中使用Google Drive API。 本周末我们注意到它在更新电子表格标题方面存在问题。我们收到以下错误:
HttpError: <HttpError 403 when requesting https://www.googleapis.com/drive/v2/files/1_X51WMK0U12rfPKc2x60E_EuyqtQ8koW-NSRZq7Eqdw?quotaUser=5660071165952000&fields=title&alt=json returned "The authenticated user has not granted the app 593604285024 write access to the file 1_X51WMK0U12rfPKc2x60E_EuyqtQ8koW-NSRZq7Eqdw">
对Google Drive API的其他调用成功。我们只是遇到了这个问题。此功能也可以长时间正常工作。谷歌方面的某些更新是否有可能破坏了这一点?
重现问题的最小代码是:
class TestDriveUpdate(webapp2.RequestHandler):
def get(self):
credentials = StorageByKeyName(Credentials,
'103005000283606027776',
'credentials').get()
spreadsheet_key = '1_X51WMK0U12rfPKc2x60E_EuyqtQ8koW-NSRZq7Eqdw'
quota_user = '5660071165952000'
body = {"title": 'Test'}
fields = "title"
http = httplib2.Http(timeout=60)
credentials.authorize(http)
gdrive = apiclient.discovery.build('drive', 'v2', http=http)
response = gdrive.files().update(
fileId=spreadsheet_key,
body=body,
fields=fields,
quotaUser=quota_user
).execute()
self.response.write("OK")
答案 0 :(得分:1)
基于此documentation,如果请求的应用不在文件的ACL上,并且用户从未使用此云端硬盘应用明确打开该文件,则会发生错误。找到此SO question,其中指出范围字符串必须与您的代码和管理控制台之间完全匹配,包括尾部斜杠等。还要确保域中允许使用云端硬盘应用(“允许用户安装Google云端硬盘应用” “)。