我去了服务帐户,访问了谷歌的api。
最初,appengine无法使用服务帐户。 不,我发现这个URL说我们也可以这样做。 https://developers.google.com/api-client-library/python/platforms/google_app_engine#ServiceAccounts
我试过这个过程无法取得成功。另一方面,我有两个问题。使用我们从Google控制台获取的私钥的过程中没有。 <击> 当我尝试这是我所看到的。
Traceback(最近一次调用最后一次):
文件“/base/data/home/apps/tempid/cons-main.361607602228494295/main.py”,第63行,在
service = build('drive','v2',http = http)
在position_wrapper中输入文件“/base/data/home/apps/tempid/cons-main.361607602228494295/oauth2client/util.py”,第120行
返回包裹(* args,** kwargs)
文件“/base/data/home/apps/tempid/cons-main.361607602228494295/apiclient/discovery.py”,第193行,在构建中
resp,content = http.request(requested_url)
在position_wrapper中输入文件“/base/data/home/apps/tempid/cons-main.361607602228494295/oauth2client/util.py”,第120行
返回包裹(* args,** kwargs)
new_request中的文件“/base/data/home/apps/tempid/cons-main.361607602228494295/oauth2client/client.py”,第405行
self._refresh(request_orig)
在_refresh中输入文件“/base/data/home/apps/tempid/cons-main.361607602228494295/oauth2client/appengine.py”,第162行
提出AccessTokenRefreshError(str(e))
AccessTokenRefreshError
击>
有什么答案吗? 请忽略上面的错误,我解决了这个问题。错误在于定义范围。
我将我的appengine应用服务帐户ID添加到控制台,添加了结算和&amp;我没有使用任何API密钥。
service.files().insert(
body=body,
).execute()
此语句抛出异常。
An error occured: <HttpError 403 when requesting https://www.googleapis.com/drive/v2/files?alt=json returned "Daily Limit Exceeded. Please sign up">
我想知道我是否已将我的appengine服务帐户添加到api控制台的2-3个项目中,并且我没有使用任何api密钥,这个项目的数据将在何处进入。 -
答案 0 :(得分:2)
服务帐户仅支持某些特定服务。您似乎正在尝试使用Google Drive SDK,因此我添加了google-drive-sdk标记。希望有人看到该标签可以告诉您Drive是否支持服务帐户。
云端硬盘支持提供服务帐户 - 请使用您的确切代码更新帖子。在设置AppAssertionCredentials
对象时是否使用了正确的Google Drive scope?
您可能希望先在App Engine shell中尝试此操作,以便轻松捕获异常并检查异常对象中的内容。您希望能够在尝试获取访问令牌时找到服务器返回的错误响应。
您可能必须在API控制台项目中添加App Engine服务帐户电子邮件地址(来自App Engine控制台)作为团队成员。我们必须这样做才能链接BigQuery上的计费/数据权限。
您不必使用API控制台中的任何私钥 - App Engine会自动处理服务帐户创建和密钥管理。