Google App Engine和服务帐户

时间:2012-09-08 09:42:50

标签: python google-app-engine oauth-2.0 google-drive-api google-api-python-client

我去了服务帐户,访问了谷歌的api。

最初,appengine无法使用服务帐户。 不,我发现这个URL说我们也可以这样做。 https://developers.google.com/api-client-library/python/platforms/google_app_engine#ServiceAccounts

我试过这个过程无法取得成功。另一方面,我有两个问题。

  1. 这个API如何识别我收费的Google项目帐户。
  2. 使用我们从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

  3. 有什么答案吗? 请忽略上面的错误,我解决了这个问题。错误在于定义范围。

    我将我的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密钥,这个项目的数据将在何处进入。 -

1 个答案:

答案 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会自动处理服务帐户创建和密钥管理。