我通过Google Play开发者控制台创建了游戏(它是ready for testing
,但尚未发布)。
作为测试人员添加了两个服务帐户 - myappid@appspot.gserviceaccount.com
(Google App Engine服务帐户)和64436212345-enq9gkd1abcdefghjec2kha39je5ojsc@developer.gserviceaccount.com
(手动创建的服务帐户,它是在访问Google Play游戏服务API之前创建的)。第一个用于生产GAE环境,第二个用于开发环境(使用--appidentity_email_address
运行)。这两个帐户都适用于Google AnalyticsAPI。
现在,我尝试使用这些帐户来使用Google Play游戏服务API。
以下代码用于授权并正常工作:
credentials = AppAssertionCredentials(scope=['https://www.googleapis.com/auth/games', 'https://www.googleapis.com/auth/plus.login'])
http = credentials.authorize(httplib2.Http(memcache))
但是我在尝试访问成就定义时遇到错误(也尝试获取应用程序元数据 - 遇到同样的问题):
response = service.achievementDefinitions().list().execute()
在开发环境中我得到了
<HttpError 404 when requesting https://www.googleapis.com/games/v1/achievements?alt=json returned "The requested application with ID 64436212345 was not found.">
并在制作中:
<HttpError 500 when requesting https://www.googleapis.com/games/v1/achievements?alt=json returned "">
那里有什么问题? Google Play Services API是否支持服务帐户?
更新。进一步分析显示,当我的Google Play应用程序的ID为760943112345时,64436212345是我的GAE应用程序的ID。
因此,我访问了Google Developer Console以获取应用程序760943112345,并添加了64436212345-enq9gkd1abcdefghjec2kha39je5ojsc@developer.gserviceaccount.com
和myappid@appspot.gserviceaccount.com
作为其成员。它没有帮助。
然后我在那里生成了新的服务帐户ID,并使用此服务帐户在本地运行GAE。结果,我开始得到
<HttpError 401 when requesting https://www.googleapis.com/games/v1/applications/760943112345?alt=json returned "User has not completed registration.">
当然,我的服务帐户没有Google+个人资料。
答案 0 :(得分:2)
我也在服务帐户和Google游戏服务方面苦苦挣扎,并且陷入了同一点(我的服务帐户没有G +帐户)。
我在Google literature(据称于2014年1月22日更新)中找到的唯一指示是服务帐户不支持:
警告:目前很少有Google API支持服务帐户。目前,以下Google开发者服务支持服务帐户:
- Google云端存储
- Google Prediction API
- Google URL Shortener
- Google OAuth 2.0授权服务器
- Google BigQuery
这是嵌入在一些google api php客户端文档中,但是我无法证明其有效性。
如果您有任何运气可以让我知道,我也会这样做!
答案 1 :(得分:1)
编辑:这是实际答案: 您拥有来创建另一个API项目并将其链接到您的游戏项目,如Getting Started with the Google Play Games Services Publishing API中所述。您添加到游戏项目中的服务帐户无法正常运行。此外,您必须通过Google Play Developer Console添加此新API项目,而不是通过Google Developers Console。据我记忆,你去后者才能得到你的钥匙。这整个局面让我永远想通了。
<小时/> 我保留以下文字以供将来参考:
编辑:我在下面写了答案,认为你没有谈论发布API。但你似乎是。或者它的早期版本。我希望以下答案对于希望通过服务帐户访问Management API的人有用:
我一直在努力,并得出结论,服务帐户不能与GPGS Management API一起使用,后者是处理成就和事物的API。以下是我用来得出这个结论的事实:
如果在GPGS文档中更清楚一点,那就太好了。他们从GPGS页面链接的通用Google Cloud文档让我相信服务帐户会起作用。