通過Unity集成Huawei Game Service SDK 5.0.4.302並獲取openId和UnionId等玩家標識信息


背景描述

近期,發現Unity發布了配套Huawei Game Service SDK 5.0.4.302版本的demo,試水測試一把這個版本提供的新能力,寫個帖子同步給大家啦。

  • Demo****下載地址:

github.com/Unity-Techn…

  • 變更說明:

    看了下,unity之前發布支持了華為Game Service SDK4.0.1.300版本的插件,這次Unity直接更新支持到Game Service SDK5.0.4.302版本

    unity這次變更如下:

  • 新增GetGamePlayer``和``GetGamePlayer(bool isRequirePlayerId)``兩個接口,以實現獲取游戲玩家唯一標識。

  • 新增SetGameTrialProcess ,防沉迷試玩能力的接口監聽。

  • 新增AccountAuthParamsHelper ,支持開發者獲取華為帳號更多的信息,比如openId,unionId,email之類信息。

  • Player對象新增了OpenId, UnionId, AccessTokenOpenIdSign``字段。

  • 增加AppPlayerInfo 接口去保存當前玩家信息。

如果想了解上述更詳細的變更說明,可以參考華為的game Services SDK****版本更新說明:

developer.huawei.com/consumer/cn…

接口驗證測試

這里直接執行的Unity的demo,這里如果您不會打包運行demo,推薦參考這篇帖子:

手把手教您快速運行Unity提供的華為游戲demo

AccountAuthParamsHelper

查看C#源碼,可以發現Unity當前支持通過如下方式設置請求授權:

AccountAuthParamsHelper authParamsHelper = new AccountAuthParamsHelper(); authParamsHelper.SetAuthorizationCode().SetAccessToken().SetIdToken().SetUid().SetId().SetEmail().CreateParams();

這里請求授權的有: AuthorizationCode、AccessToken、IdToken、Uid、Id、Email等授權。

這個和華為側文檔描述也基本一致,當然我們可以按照我們的業務需求自行設置:

developer.huawei.com/consumer/cn…

操作:點擊Login>login按鈕

現象:

勾選email,點擊同意授權,界面會提示歡迎框,相關信息獲取如下:

可以發現:openId、unionId、AccessToken、AuthorizationCode、IdToken均可獲取到。

**但是email沒有獲取,這里我在授權頁面也勾選了email,為什么沒有獲取到呢?**后來聯系華為技術支持,發現我登錄的華為帳號本身就沒有填寫email地址,自然是獲取不到的,大家可以到華為手機設置》華為帳號中心》帳號與安全》郵箱地址下查看,這里確實沒有綁定。

大家實際綁定一個郵箱,就可以獲取到了,綁定后調測如下:

Uid獲取不到是正常的,這個和華為側技術支持核實,該uid目前暫未對外開放。

這里可以看到這個最新的Unity插件版本,已經支持可以獲取華為帳號的多個信息,如果游戲想要使用華為帳號的unionId或者openId等信息作為玩家唯一標識,也是可以的。

GetGamePlayer

該接口映射的是華為Game Service SDK5.0.4.302版本的getGamePlayer接口,按照華為官網描述,該接口獲取的player對象只有displayName、openId、unionId、accessToken有值。這里我自測了下。

操作:點擊Player>getGamePlayer按鈕

現象:

可以看到,這個和華為側的文檔描述要求一致,返回的信息中只有:displayName、openId、unionId、accessToken有值。

GetGamePlayer(bool isRequirePlayerId)

該接口映射的是華為Game Service SDK5.0.4.302版本的getGamePlayer(boolean isRequirePlayerId)接口,支持同時獲取playerId和openId

操作:點擊Player>getGamePlayer(isRequirePlayerId)

現象:

這個和華為側要求也一致。

GetGamePlayer和GetGamePlayer(bool isRequirePlayerId)接口的使用說明

關於這兩個接口的詳細使用說明,我這里參考了華為的官方文檔,大家也可以參考下。

developer.huawei.com/consumer/cn…

setGameTrialProcess

這個接口看華為官網介紹,發布中國大陸的游戲因為要滿足中國大陸的游戲防沉迷要求,所以需要接入,我這邊項目因為都發布海外,暫時不需要,另外調測這個接口需要向華為運營申請,所以我這里就不測試了。

AppPlayerInfo

保存玩家savePlayerInfo接口時需要使用,這里我們項目都是自己管理保存我們的玩家信息,沒有使用華為的這個接口,所以也不做測試了。

測試小結

可以發現,unity這個版本的插件,較上個版本的Game Service SDK4.0.1.300版本,最重要的變化點:

1. 支持我們自行設置華為帳號信息授權的范圍,比如獲取openId、unionId、email等信息。

2. 華為Game Service SDK5.0.4.302版本開始,支持以前通過getCurrentPlayer接口獲取playerId作為玩家唯一標識的游戲,將playerId替換為openId或unionId,因此新增了getGamePlayer接口,這個unity目前也支持該能力。

3. 支持了發布中國大陸的游戲試玩能力,即setGameTrialProcess。

原文鏈接:developer.huawei.com/consumer/cn…

原作者:Mayism




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM