2014-10-02 53 views
0

我正在编写使用Google Play游戏服务的任务和事件系统 - https://developers.google.com/games/services/android/quests的游戏。从服务器提交GPGS事件

游戏将在Android设备上使用它,但我想从服务器提交某些事件。我发现这个https://developers.google.com/games/services/web/api/events/record的网络休息API,但我不清楚如何进行授权。

我可以以某种方式将所有需要的身份验证信息从客户端发送到我的服务器,以便将来使用GPGS的rest api?

回答

0

你想要做什么是非正式地称为混合授权,要做到这一点的最好办法是从Android应用程序发送授权码到Web服务器。网络服务器然后可以交换代码(一次)以获得接入令牌刷新令牌。这不是特定于游戏,而是许多应用程序在Google上使用登录功能所做的事情。

Google+ Haiku+ Sample显示此流程的示例。您可能想要查看的具体内容(在Android应用程序中)为MainActivity.codeSignInRequired()MainActivity中的私人类名为CheckOrRetrieveCodeTaskHaikuSession.getCodeSynchronous()它调用GoogleAuthUtil.getToken()方法获取一次性代码。

请注意,获取此代码需要您的用户查看并接受标准的Google SignIn同意对话框。此外,一旦代码使用无效(出于安全原因),请确保您的服务器保存从交换代码中获得的代币。

Haiku+ Java Server举例说明了如何交换令牌授权码。

获得访问令牌后,您可以调用用户在客户端上同意的任何Google API。 Haiku + Java Server在获取用户圈子时显示了这个例子。

是的,这是一个复杂的流程,但它是最好和最安全的方法来做到这一点。如果你不想这样做,我建议从客户端提交Events。适用于Android的Google Play游戏SDK使其非常简单,并自动处理所有缓存和重试逻辑。