【写在前面】
本文主要介绍使用API7及以下版本开发HarmonyOS应用时,通过华为帐号SDK和云侧接口获取手机号码的主要开发步骤,注意:开发过程中集成的华为帐号SDK仅支持API7及以下版本的HarmonyOS应用。
【前提准备】
1、HarmonyOS应用已申请获取手机号码的权限,申请权限文档请参考文档:
2、登录的华为帐号已绑定手机号码
【开发步骤】
步骤1:集成华为帐号HarmonyOS Javascripts SDK,进行开发准备和集成SDK等一系列步骤,按照文档操作即可。调用登录华为帐号接口时,使用Authorization Code方式进行登录,参考文档如下:
注意:调用登录华为帐号接口时,参数需要通过setScopeList或setScope方法传入手机号的scope(即https://www.huawei.com/auth/account/mobile.number),此部分代码如下所示,以setScope为例:
import {HuaweiIdAuthParamsHelper, HuaweiIdAuthManager} from '@hw-hmscore/hms-jsb-account';
var signInOption = new HuaweiIdAuthParamsHelper().setId().setProfile().setScope(new Scope('https://www.huawei.com/auth/account/mobile.number')).setAuthorizationCode().build();
步骤2:集成华为帐号SDK调用华为登录接口,可以获取到authorization code(即通过getServerAuthCode方法获取到authCode,下文中authCode表示此处获取的用户授权码),获取到authCode后,HarmonyOS应用可通过http请求调用云侧获取凭证Access Token接口,获取AccessToken,接口参考文档如下:
步骤3:在获取到AccessToken后,再次用http请求调用云侧Gopen.User.getInfo 接口,AccessToken作为参数,获取手机号,接口参考文档如下:
【参考文档总结】
- 华为帐号HarmonyOS Javascripts SDK:
- setScopeList接口文档:
- 获取凭证Access Token接口(云侧):
- 获取用户信息接口(云侧):
- @ohos.net.http (数据请求):
【FAQ】
1、通过集成华为帐号SDK无法直接获取手机号码,需要使用从SDK获取的authCode调用云侧相关接口获取手机号码;
2、调用云侧获取凭证AccessToken接口时,redirect_uri为非必填参数,若设置了回调参数可进行传参;
3、API8及以上HarmonyOS应用,华为帐号暂未对三方应用开发可用的SDK。