通過Unity整合Huawei Game Service SDK 5.0.4.302並獲取openId和UnionId等玩家標識資訊
背景描述
近期,發現Unity釋出了配套Huawei Game Service SDK 5.0.4.302版本的demo,試水測試一把這個版本提供的新能力,寫個帖子同步給大家啦。
- Demo****下載地址:
-
變更說明:
看了下,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
,AccessToken
和OpenIdSign``欄位。
-
增加
AppPlayerInfo
介面去儲存當前玩家資訊。
如果想了解上述更詳細的變更說明,可以參考華為的game Services SDK****版本更新說明:
developer.huawei.com/consumer/cn…
介面驗證測試
這裡直接執行的Unity的demo,這裡如果您不會打包執行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