1. 程式人生 > 其它 >通過Unity整合Huawei Game Service SDK 5.0.4.302並獲取openId和UnionId等玩家標識資訊

通過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