你想要做什麼是非正式地稱爲混合授權,要做到這一點的最好辦法是從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使其非常簡單,並自動處理所有緩存和重試邏輯。