方案选取
所有登录方式都需要接入吗?
由于HarmonyOS NEXT应用市场/游戏中心成为游戏分发途径,游戏将不再存在多包体共存的情况。为确保HarmonyOS NEXT游戏玩家拥有连贯的游戏体验,并满足多样化的游戏账号类型需求,原则上HarmonyOS NEXT游戏登录需要实现以下完整登录方案,以满足对HarmonyOS玩家账号、游戏官方玩家账号等多种来源的玩家账号的支持。
登录方式 | 能力 | 备注 |
华为账号登录-转移登录 | 将HarmonyOS系统的华为渠道游戏账号资产转移至HarmonyOS NEXT。 | 需要接入。 |
华为账号登录-授权绑定登录 | 玩家授权手机号,快速注册/登录游戏官方账号角色。 | 需要接入。 |
官方账号登录 | 玩家输入手机号/账号密码,注册/登录游戏官方账号角色。 | 需要接入。 |
其他三方账号登录 | 通过三方平台账号快速注册/登录官服角色。 | 如涉及,则需要接入。 |
特殊情况:
-
如游戏未在HarmonyOS系统的应用市场上架,或未来无计划在HarmonyOS系统上架,则无需接入转移登录。
-
如游戏无官方包体,不通过游戏官网分发,仅通过各渠道分发,则无需接入关联登录、官方账号登录,仅需接入转移登录。请联系华为技术支持屏蔽授权绑定登录入口。
-
如游戏有官方包体,但无官方账号体系,仅依赖三方平台登录方式,则无需接入关联登录、官方账号登录,请接入三方平台登录。请联系华为技术支持屏蔽授权绑定登录入口。
-
单机游戏采取特殊方案,接入请参考单机游戏接入方案。
服务器区服原则
-
华为账号登录-转移登录进渠道服,与HarmonyOS系统应用市场游戏包区服保持一致。
-
华为账号登录-授权绑定登录、官方账号登录、其他三方账号登录进官服,与游戏官方包区服保持一致。
账号接入预期效果?
华为渠道资产互通(涉及华为账号登录-转移登录)
HarmonyOS NEXT转移登录与HarmonyOS/EMUI系统渠道登录共享游戏账号资产,例如:
-
已有渠道角色的玩家: 在HarmonyOS游戏中已有角色A的玩家,通过HarmonyOS NEXT游戏的华为账号登录-转移登录可以继承角色A全部资产。
-
新玩家: 在HarmonyOS游戏中没有角色的新玩家,首次进入HarmonyOS NEXT游戏的华为账号登录-转移登录,应被引导进入授权绑定/官方账号登录流程。
官服资产互通(涉及华为账号登录-授权绑定登录、官方账号登录、其他三方账号登录)
-
HarmonyOS NEXT授权绑定登录、HarmonyOS NEXT官方账号登录、游戏官方包官方账号登录共享游戏账号资产,例如:
-
已有官服角色的玩家: 在游戏官包中已有官服角色B的玩家,使用相同手机号或账号密码,通过HarmonyOS NEXT游戏的官方账号登录或华为账号登录-授权绑定登录皆可继承角色B全部资产。
-
新玩家: 新玩家首次通过HarmonyOS NEXT游戏的官方账号登录或华为账号登录-授权绑定登录创建官服角色C,使用相同手机号或账号密码,在游戏官包中可以继承角色C全部资产。
-
-
HarmonyOS NEXT三方登录与游戏官方包三方登录共享游戏账号资产,例如:
-
已有官服角色的玩家: 在游戏官包中通过某三方登录方式创建的官服角色D的玩家,使用相同三方账号,通过HarmonyOS NEXT游戏的相同三方登录方式可以继承角色D全部资产。
-
新玩家: 新玩家首次通过HarmonyOS NEXT游戏的某三方登录方式创建官服角色E,使用相同三方账号,通过游戏官包的相同三方登录方式可以继承角色E全部资产。
-
HarmonyOS游戏渠道包使用的玩家标识是playerId/openId/unionId或存在混用情况,应该如何确保玩家通过HarmonyOS NEXT转移登录继承游戏资产?
请开发者在开发准备-配置APP ID映射关系时正确选择HarmonyOS华为渠道包的玩家标识类型:
-
playerId:若HarmonyOS游戏确认全部玩家均使用playerId作为玩家标识,请选择“playerId”。选择后,HarmonyOS NEXT游戏的玩家标识gamePlayerId=playerId。
-
openId:若HarmonyOS游戏确认全部玩家均使用openId作为玩家标识,请选择“openId”。选择后,HarmonyOS NEXT游戏的玩家标识gamePlayerId=openId。
-
unionId:若HarmonyOS游戏确认全部玩家均使用unionId作为玩家标识,建议选择“openId”,并在AGC勾选“使用了unionId”,选择后,HarmonyOS NEXT游戏的玩家标识gamePlayerId=openId。此时,通过转换ID将gamePlayerId(openId)换取unionId,若unionId未在游戏侧找到玩家记录,则当前玩家为HarmonyOS NEXT游戏的新用户。
-
playerId与openId混用:部分游戏由于处于playerId替换为openId方案的过渡期,导致HarmonyOS游戏的玩家标识类型存在playerId与openId混用的情况,例如游戏中的A玩家使用openId,B玩家使用playerId,建议选择“openId”。选择后,HarmonyOS NEXT游戏的玩家标识gamePlayerId=openId。若无法通过gamePlayerId在游戏侧找到玩家记录,可通过转换ID接口用gamePlayerId(openId)换取playerId,若playerId能在游戏侧找到玩家记录,表明该玩家是使用playerId作为玩家标识的老用户,否则该玩家为HarmonyOS NEXT系统新用户。
游戏已接入官方账号登录,为什么还要接入授权绑定登录,手机号的作用是什么?
华为账号登录-授权绑定登录中,开发者通过快速获取玩家主动授权的指定手机号,找到游戏官方账号进度(thirdOpenId)并将玩家登入,免去玩家输入手机号和验证码的过程,从而达到华为账号快速登录游戏的效果并继承已有官服角色资产。
以下情况无需申请手机号权限:
-
如果游戏官方账号体系中未使用手机号进行注册/登录,例如使用账号密码进行注册/登录,则无需申请获取手机号权限,需要游戏侧自行设置弹窗让玩家输入账密,从而找到官方账号。
-
单机游戏无需申请手机号权限。
开发者级别/游戏级别绑定的区别?
华为账号登录-授权绑定登录流程中涉及开发者将华为玩家标识teamPlayerId与游戏官方账号thirdOpenId进行绑定的步骤。账号绑定支持如下级别:
绑定级别 | 适用场景 | 说明 | 解绑表现 |
开发者级别(默认) | 适用于游戏厂商的所有游戏均使用平台级的账号体系。 | 玩家的华为账号仅需在一款游戏中绑定平台的官方账号(thirdOpenId),该主体下的其它游戏授权绑定登录时,联合登录接口将直接返回thirdOpenId,无需重复进行授权与绑定操作。 | 若玩家在一款游戏中解绑,则同主体下其他游戏都解绑。 |
游戏级别 | 适用于游戏厂商的某款游戏未使用平台级的账号体系。 | 游戏之间登录流程互不影响。 | 游戏之间解绑操作互不影响。 |
如开发者有特殊需求,需配置游戏级别绑定,请联系华为技术支持企业QQ:2851508898。
2 合规与隐私
实名认证、防沉迷方案
verifyLocalPlayer是保障华为账号合规性的必要接口,因此各登录方式都需要调用verifyLocalPlayer。
此外,除转移登录,其他登录方式都需要游戏侧额外实现实名认证、防沉迷、支付限额逻辑,以保障游戏官方账号的合规性。
登录方式 | 游戏侧合规校验 | 华为侧合规校验 |
华为账号登录-转移 | 不涉及。 | 调用verifyLocalPlayer接口保障华为账号合规性。 |
华为账号登录-授权绑定 | 需要自行实现实名认证、防沉迷、支付限额逻辑,以保障游戏官方账号的合规性。 | 调用verifyLocalPlayer接口保障华为账号合规性。 |
官方账号登录/其他三方账号登录 | 需要自行实现实名认证、防沉迷、支付限额逻辑,以保障游戏官方账号的合规性。 | 调用verifyLocalPlayer接口保障华为账号合规性。 |
华为隐私协议弹窗展示逻辑
调用gamePlayer.init接口后,Game Service Kit将向玩家展示隐私协议弹窗。玩家同意隐私协议后,后续打开其他游戏不再重复弹出。如果玩家拒绝,游戏将退出,后续打开游戏会再次弹出协议弹窗。
该协议为华为账号级协议,签署后不可重置。 |
3 接口与调试
needBinding字段含义
在华为账号登录方式中,needBinding字段仅作为标志位反映玩家所选的华为账号登录方式。如玩家选择转移,固定返回needBinding = false;如玩家选择授权绑定,固定返回needBinding = true。
如开发者未完成开发准备中的APP ID映射配置,则华为账号登录将默认执行授权绑定登录,返回needBinding = true。
选择华为账号登录后未展示转移与授权绑定登录的选择框
可能原因:
-
如开发者未完成开发准备中的APP ID映射配置,则华为账号登录将默认执行授权绑定登录,不展示转移与授权绑定登录的选择框。
-
如开发者已完成APP ID映射配置,考虑以下情况:
-
如玩家已经选择转移登录,请到游戏中心APP-我的-游戏账号-转移服务进行回退操作,以重置登录方式。
-
如玩家已经选择授权绑定登录,请到游戏内或游戏中心APP-我的-游戏账号进行解除绑定操作,以重置登录方式。
-
如玩家游戏号是由gamePlayer.getLocalPlayer()接口生成,则默认进入转移登录流程。通过欢迎横幅-管理-删除该游戏号后重新执行联合登录即可见选择框。
-
createAuthorizationWithHuaweiIDRequest和createLoginWithHuaweiIDRequest区别
-
相同点:两个接口都是为了获取Authorization Code,用于服务器进一步获取Access Token,以换取更多玩家信息。
-
不同点:createAuthorizationWithHuaweiIDRequest接口能额外获取玩家的华为账号头像、昵称,以及华为账号绑定的手机号。该接口建议仅用于华为账号登录-授权绑定登录的首登/解绑后登录场景,即联合登录返回needBinding = true且未返回thirdOpenId。
游戏侧可以自行实现登录缓存吗?
可以。开发者可以自行实现登录缓存,并省略调用unionLogin接口以提高非首登流程的登录速度,但verifyLocalPlayer接口依然需要调用。该接口内部会核验玩家标识与当前华为账号是否匹配,以防止玩家通过切换华为账号绕过防沉迷等不合规场景。
如何触发与验证on接口回调?
On接口用于监听玩家切换事件,当前以下两个场景会触发on接口回调:
-
HarmonyOS部分游戏涉及角色交易和单玩家多游戏号的场景,该类玩家游戏号转移到HarmonyOS NEXT后,可在欢迎横幅中切换游戏号,切换时触发on回调。
-
游戏做了登录缓存的前提下,玩家切换了华为账号,重启游戏没有调用unionLogin,直接调用verifyLocalPlayer,此时verifyLocalPlayer会报错1002000015当前玩家信息无效,并触发on回调。
更多问题可关注:
鸿蒙游戏官方网站:已有游戏移植-鸿蒙游戏-华为开发者联盟
公开课:华为开发者学堂