首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以使用服务帐户访问Google?

是否可以使用服务帐户访问Google?
EN

Stack Overflow用户
提问于 2014-04-15 20:25:10
回答 2查看 1.6K关注 0票数 2

我已经通过Google开发者控制台创建了这个游戏(它是ready for testing,但还没有发布)。

两个服务帐户作为测试员添加- myappid@appspot.gserviceaccount.com (Google服务帐户)和64436212345-enq9gkd1abcdefghjec2kha39je5ojsc@developer.gserviceaccount.com (手动创建的服务帐户,它是在访问Google游戏服务API之前创建的)。第一种用于生产GAE环境,第二种用于开发环境(与--appidentity_email_address一起运行)。这两个帐户与谷歌分析API很好地工作。

现在,我尝试使用这些帐户来使用Google。

以下代码用于授权,运行良好:

代码语言:javascript
复制
credentials = AppAssertionCredentials(scope=['https://www.googleapis.com/auth/games', 'https://www.googleapis.com/auth/plus.login'])
http = credentials.authorize(httplib2.Http(memcache))

但是,当我试图访问成就定义(也试图获取应用程序元数据-获取相同的问题)时,我遇到了一个错误:

代码语言:javascript
复制
response = service.achievementDefinitions().list().execute()

在开发环境中我得到

代码语言:javascript
复制
<HttpError 404 when requesting https://www.googleapis.com/games/v1/achievements?alt=json returned "The requested application with ID 64436212345 was not found.">

在生产中:

代码语言:javascript
复制
<HttpError 500 when requesting https://www.googleapis.com/games/v1/achievements?alt=json returned "">

哪里出什么问题了?服务帐户是否由Google服务API支持?

Upd.进一步分析表明,当我的Google应用程序的ID为760943112345时,64436212345是我的GAE应用程序的ID。

因此,我去为应用程序760943112345添加了64436212345-enq9gkd1abcdefghjec2kha39je5ojsc@developer.gserviceaccount.commyappid@appspot.gserviceaccount.com作为他们的成员。没什么用。

然后,我在那里生成了新的服务帐户ID,并使用这个服务帐户在本地运行GAE。结果,我开始

代码语言:javascript
复制
<HttpError 401 when requesting https://www.googleapis.com/games/v1/applications/760943112345?alt=json returned "User has not completed registration.">

当然,我的服务帐户没有Google+配置文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-16 16:54:01

我还在为服务帐户和谷歌游戏服务而挣扎,并且陷入了同样的境地(我的服务帐户没有G+帐户)。

我在谷歌文献 (据推测是2014年1月22日更新)中发现的唯一迹象是,服务账户是而不是支持的:

警告:目前很少有Google支持服务帐户。服务帐户>由以下服务支持:

  • 谷歌云存储
  • Google预测API
  • Google缩短器
  • 谷歌OAuth 2.0授权服务器
  • Google BigQuery

然而,这是嵌入在一些google php客户端文档中的,因此我无法证明它的有效性。

让我知道,如果你有任何运气,使这工作,我也会这样做!

票数 2
EN

Stack Overflow用户

发布于 2017-01-01 15:45:47

编辑:这是实际的答案:来创建另一个API项目,并将其链接到游戏的项目,如开始使用Google游戏服务发布API中所解释的那样。您添加到游戏项目中的服务帐户将无法工作。另外,您必须通过Google Play Developer控制台而不是通过Google开发者控制台添加这个新的API项目。据我所知,你去后者只拿你的钥匙。这整件事我花了很长时间才弄清楚。

我保留以下案文,供今后参考:

编辑:我写了下面的答案,认为你没有谈论发布API。但你似乎是。或者更早的版本。我希望下面的答案对那些希望通过服务帐户访问Management的人有帮助:

我与此作了斗争,并得出结论认为,服务帐户不适用于GPGS管理API,而GPGS管理API是处理此类成就和事情的API。以下是我过去得出这一结论的事实:

  • GPGS文档中提到的服务帐户中的唯一的地方是Publishing。
  • 管理API文档包含关于授权要求的每个函数的描述,例如:“此方法仅适用于您的开发人员控制台的用户帐户”,而发布API文档则没有这样的描述。
  • 示例应用程序 for Management不使用服务帐户。

如果这在GPGS文档中更清晰一点,那就太好了。他们从GPGS页面链接的通用Google文档让我相信服务帐户会正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23093806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档