账号模块
账号模块支持自有账号登录和喜马账号登录。
自有账号登录(即Credential登录)
(1)适用范围:接入方有自己的账号体系和服务器,具备服务端开发能力。
(2)技术原理:此方式将接入方账号体系与小雅OS账号体系进行关联,在小雅OS开放平台-硬件开放平台-配置服务中配置校验credential的接口url后,接入方自行设计并实现credential的生成及接口校验。
XYMobileSdk.getAccountSdk().loginByCredential(String ptfId, String credential, TokenCallBack callback);
喜马账号登录
(1)适用范围:适用于接入方没有自己的账户体系,有C端用户个性化相关需求也建议采用该方式。
(2)技术原理:
- 开发者需先从喜马拉雅开放平台获取appKey,appSecret。(注意:是喜马拉雅开放平台,而不是小雅OS开放平台)进入喜马拉雅开放平台-应用中心,注册移动应用并提交审核,其中回调地址填写小雅OS开放平台分配的RedirectUri,审核通过后可开始开发调试/正式使用。
- 使用此登录模式,用户首先登录喜马拉雅账户,之后用喜马拉雅accessToken换取小雅OS的osAccessToken。
- 喜马拉雅开放平台SDK集成了喜马拉雅的Oauth2登录,用户通过SDK获取到喜马拉雅accessToken后可以直接通过第三方登录接口换取小雅OS的osAccessToken。
XYMobileSdk.getAccountSdk().loginByXM(String ptfId, String xmToken, String xmUid, TokenCallBack callback);
刷新token
通常不会用到这个接口。sdk内部在每次调接口之前会判断token是否过期,若过期则会自动刷新token,token过期时间为2小时。
XYMobileSdk.getAccountSdk().refreshToken(TokenCallBack callback);
自定义token获取途径
在手机助手场景上,由c++层维护账号模块和token。此时,伴侣sdk不必登录,而是通过ITokenProvider,从外部获取token。
interface ITokenProvider {
String getAccessToken();
}
XYMobileSdk.getAccountSdk().setTokenProvider(ITokenProvider tokenProvider);
绑定喜马账号
使用手机助手可以绑定喜马账号,领取喜马会员(音箱对应sn有会员才可以领),享受会员专享资源。
参数 | 类型 | 是否必要 | 简述 |
---|---|---|---|
context | Context | 是 | SDK版本信息 |
title | String | 是 | 喜马绑定页的标题 |
url | String | 是 | 绑定页的url,在获取“喜马账号绑定状态信息“详见bindXimaAccountInfo接口中返回 |
sn | String | 是 | 音箱的sn号 |
type | int | 是 | 字段预留,主要用于区分客户类型的 |
interface SimpleCallback {
void onSucceed();
void onFailed(int code, String msg);
}
XYMobileSdk.getAccountSdk().bindXimaAccount(Context context, String title, String url,String sn, int type, SimpleCallback callback);
解绑喜马账号
传skillId解除喜马绑定
XYMobileSdk.getAccountSdk().unbindXimaAccount(String skillId, JsonXYCallback<SkillLogoutResult> callback);
获取喜马账号绑定状态信息
XYMobileSdk.getAccountSdk().bindXimaAccountInfo(JsonXYCallback<SkillCenterDetailBean.LoginDetail> callback);
LoginDetail
{
"skillPtfId" : os.ptf.xmly.testsdkdemo
"h5": {
"loginPage": "https://api.xiaoyastar.com/open/skill-login/h5?osAccessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjgxNjI1NTgsInNraWxsSWQiOiJvcy5za2lsbC4xNCIsImlzcyI6Inh5LW9zLXVjZW50ZXIiLCJkZXZpY2VJZCI6ImU4ZTY1NjljMWI4ZGRhYjMifQ.gRQETHEpfB6AOJEqvA9n-7wLifewo6jR7yokPUH5LbA" //请求喜马账号绑定的url,status未0时返回
},
"nickName": "unknown", //昵称
"status" : 0 //登录状态 0:未绑定 1:已经绑定 2:无需绑定
}