2014-10-02 64 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使其非常簡單,並自動處理所有緩存和重試邏輯。