在 Play Games Plugin for Unity v0.11.x 上使用 LoginWithGoogleAccount 的修正方法
本文說明當您升級至某個版本的 Play Games Plugin for Unity 後,使用 LoginWithGoogleAccount API 時收到錯誤的因應措施。 當您將 Play Games Plugin for Unity 升級至 v0.11.x 或更新版本後,如果現有玩家尚未移轉為使用 LoginWithGooglePlayGamesServices,就會發生此錯誤。原因是 Google 在 0.11.x 或更新版本的外掛程式中移除了新增額外範圍的功能。 由於必須透過瀏覽器登入可能會影響玩家體驗,因此應將此因應措施視為後援替代方案。開始之前
依照下列高階步驟,修正使用最新版本外掛程式時的驗證問題。- 手動呼叫 Google OAuth2 API
- 在瀏覽器索引標籤中執行玩家驗證
- 使用 Android 深層連結將重新導向驗證碼傳回遊戲。
建議
在您仍使用 0.10.x 版外掛程式時,將使用者移轉為使用 LoginWithGooglePlayGamesServices API。升級至 0.11.x 或更新版本的外掛程式後,將下列步驟作為其餘玩家的後援方法。修正步驟
-
使用深層連結將 Android 意圖新增至您的遊戲。(步驟改編自 Unity - Manual: Deep linking on Android (unity3d.com))
a. 在 Project 視窗中,前往 Assets > Plugins > Android。
b. 建立新檔案並命名為 AndroidManifest.xml。當您建置應用程式時,Unity 會自動處理此檔案。
c. 將下列資訊清單範例複製到新檔案中,以您應用程式的 URI 更新 data 元素並儲存。如需如何建置正確 data 標籤的詳細資訊,請參閱這篇文章。
d. 確認 intent-filter 標籤上有 autoVerify 屬性。
- 為了讓深層連結能夠運作,從 Android 12 開始,Google 現在要求開發人員在已知位置裝載 assetlinks.json 檔案,才能成功重新導向至您的應用程式。 例如,如果您的重新導向 URI 是 https://mytestapp.com/path1/subpath,您應該在 https://mytestapp.com/.well-known/assetlinks.json 裝載有效的 assetlinks.json 檔案,否則深層連結將無法運作,您也不會被重新導向回應用程式以繼續操作。 如需如何建立 assetlinks.json 檔案的詳細資訊,請參閱 Verify Android App Links。
-
將深層連結處理新增至您的遊戲。(步驟改編自 Unity - Manual: Deep linking (unity3d.com))。
-
新增一些程式碼,以啟動瀏覽器前往 Google OAuth2 API,並讓玩家透過瀏覽器登入。如果玩家已在瀏覽器上登入,轉換過程將會很順暢,否則他們需要輸入認證。
重新導向 URI 必須與我們在步驟 1 中新增的 Android 意圖篩選器相符。因此,當使用者完成驗證時,瀏覽器會瀏覽至該重新導向 URI,並應詢問使用者是否要瀏覽回應用程式。
-
現在,您應該已準備好進行測試。當您觸發驗證時,應該會開啟瀏覽器,使用者必須依序登入。除非刪除瀏覽器資料,否則此步驟應該只需執行一次。

-
使用者完成驗證後,瀏覽器會詢問應以哪個應用程式開啟重新導向 URL。

-
此動作會瀏覽回我們的應用程式,我們可以從重新導向 URL 的查詢參數取得代碼,然後繼續呼叫 LoginWithGoogleAccount。

- 最後,我們建議將此方法作為無法使用移轉步驟移轉之使用者的後援替代方案。
