1、业务简介
应用可以通过荣耀快应用接入荣耀帐号。应用内支持拉起荣耀帐号授权页面,用户同意授权后, 应用可以获取到用户的昵称头像以及手机号信息, 用户可以直接通过荣耀帐号便捷的登录应用, 大大提高了用户使用应用的便捷性和体验。
授权页面如下:
2.开发准备
2.1注册开发者服务平台帐号
访问 荣耀开发者服务平台,注册成为荣耀开发者,详情请参考《荣耀开发者帐号注册认证》。
2.2申请开通帐号服务
点击进入 开放能力 → 帐号服务, 如果没有权限, 按照提示联系开发者服务平台开通卡片权限
2.3申请服务器应用AppId
开放能力 → 帐号服务 → 申请帐号服务 → 申请服务器应用的 AppId
项目 | 必填/必选项 | 说明 |
产品类型 | 必选 | 选择服务器应用, 对于web接入选择服务器应用 |
产品名称 | 必填 | 输入WEB应用名称, 应用名称会在授权弹框中展示 |
默认语言 | 必选 | 选择需要展示的WEB应用名称的语言, 与产品名称是一一对应的 |
回调地址 | 选填 | 快应用接入建议填写。快应用接入帐号,获取授权码 code 时,不会发生回调,但是在服务端 code 换 AT 的接口中,redirect_uri 参数,可以填写这里配置的回调地址, 如:https://www.demo.com/url。如果没有回调地址没有配置,服务端 code 换 AT 接口中的 redirect_uri 参数可以填固定值:honorid://redirect_url |
应用访问地址 | 选填 | 暂时未使用到, 可以不填 |
应用图标 | 必填 | 快应用图标, 会在授权弹框中展示, 注意尺寸 |
启用UnionId | 选填 | 建议启用。同一个开发者帐号下的不同应用,对于同一个用户,UnionID 相同。 如果开发者有在多个应用间拉通用户的需求,可以使用 UnionID 来识别用户唯一性。 使用 UnionID 的应用务必同时在系统中保存 OpenID, 应用转移的情况(保持应用 AppId 不变的情况下将开发者帐号下的应用转移到另一个开发者帐号下), UnionID 会变化,届时可以利用 OpenID 作数据迁移。 |
2.4联系荣耀帐号管理员开通相关权限
申请快应接入, 请下载 荣耀帐号Scope申请表(应用名称+应用ID) 进行填写,并把文件名括号内的应用名称和应用ID换成真实值。应用类型 一栏填写为 快应用。
如果还需要申请手机号权限, 则在 申请获取的用户个人信息 一栏填写 手机号。发送邮件至:honorid_developer@pmail.honor.com,邮件主题请包含【荣耀帐号Scope申请】。申请邮件会有专人审批,三个工作日内会通过邮件回复审批结果。
3.开发指导
3.1前言
快应用详细开发指导, 通过快应用引擎获取授权码, 可以参考 快应用卡片帐号接入指南
3.2判断荣耀帐号是否登录
接口: isLogin()
作用:用于判断荣耀帐号是否已经登录
接口调用文档参考: 快应用卡片帐号接入指南
3.3获取授权码
接口 authorize()
作用:请求用户进行OAuth授权,拿到Authorization Code(Authorization Code用于到服务端换取Access Token,Access Token再用于获得帐号信息)
接口调用文档参考: 快应用卡片帐号接入指南
3.4 Code 换 Access Token
第3节会获取一个授权码 code, 应用拿到code参数之后, 调用 /oauth2/v3/token 接口用 code 换取 Access Token, Refresh Token, ID Token等参数.
接口地址: https://hnoauth-login.cloud.honor.com/oauth2/v3/token
注意: grant_type=authorization_code
接口调用文档参考: 服务端API接口 Code 换 Access Token
3.5 Access Token 获取用户信息
获取到Access Token之后, 可以通过 GOpen.User.getInfo 接口获取用户信息。
接口地址:https://account-drcn.platform.honorcloud.com/rest.php?nsp_fmt=JSON&nsp_svc=GOpen.User.getInfo
接口调用文档参考: 服务端API接口 Access Token 获取用户信息
3.6 Refresh Token 刷新 Access Token
Access Token 的有效期是1小时, 如果过期了, 还需要使用到的话, 那可以调用 /oauth2/v3/token 接口用 Refresh Token 换取Access Token.
接口地址:https://hnoauth-login.cloud.hihonor.com/oauth2/v3/token
注意: grant_type=refresh_token
接口调用文档参考: 服务端API接口 Refresh Token 刷新 Access Token