通过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下载地址:

https://github.com/Unity-Technologies/HuaweiServiceSample

  • 变更说明:

    看了下,unity之前发布支持了华为Game Service SDK4.0.1.300版本的插件,这次Unity直接更新支持到Game Service SDK5.0.4.302版本

    unity这次变更如下:

  • 新增GetGamePlayerGetGamePlayer(bool isRequirePlayerId)两个接口,以实现获取游戏玩家唯一标识。

  • 新增SetGameTrialProcess ,防沉迷试玩能力的接口监听。

  •  新增AccountAuthParamsHelper ,支持开发者获取华为帐号更多的信息,比如openIdunionIdemail之类信息。

  • Player对象新增了OpenIdUnionIdAccessToken  OpenIdSign字段。

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

如果想了解上述更详细的变更说明,可以参考华为的game Services SDK版本更新说明:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/version-change-history-0000001050123471

 

接口验证测试

这里直接执行的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等授权。

这个和华为侧文档描述也基本一致,当然我们可以按照我们的业务需求自行设置:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/dev-guide-account-0000001050048888

操作:点击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)

现象:

这个和华为侧要求也一致。

GetGamePlayerGetGamePlayer(bool isRequirePlayerId)接口的使用说明

关于这两个接口的详细使用说明,我这里参考了华为的官方文档,大家也可以参考下。

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/version-change-history-0000001050123471-V5

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

这篇关于通过Unity集成Huawei Game Service SDK 5.0.4.302并获取openId和UnionId等玩家标识信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/184599

相关文章

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

python中os.stat().st_size、os.path.getsize()获取文件大小

《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法