你想要做什么是非正式地称为混合授权,要做到这一点的最好办法是从Android应用程序发送授权码到Web服务器。网络服务器然后可以交换代码(一次)以获得接入令牌和刷新令牌。这不是特定于游戏,而是许多应用程序在Google上使用登录功能所做的事情。
Google+ Haiku+ Sample显示此流程的示例。您可能想要查看的具体内容(在Android应用程序中)为MainActivity.codeSignInRequired()
,MainActivity
中的私人类名为CheckOrRetrieveCodeTask
,HaikuSession.getCodeSynchronous()
它调用GoogleAuthUtil.getToken()
方法获取一次性代码。
请注意,获取此代码需要您的用户查看并接受标准的Google SignIn同意对话框。此外,一旦代码使用无效(出于安全原因),请确保您的服务器保存从交换代码中获得的代币。
Haiku+ Java Server举例说明了如何交换令牌授权码。
获得访问令牌后,您可以调用用户在客户端上同意的任何Google API。 Haiku + Java Server在获取用户圈子时显示了这个例子。
是的,这是一个复杂的流程,但它是最好和最安全的方法来做到这一点。如果你不想这样做,我建议从客户端提交Events
。适用于Android的Google Play游戏SDK使其非常简单,并自动处理所有缓存和重试逻辑。