APPSDK 账号系统说明
API概览
名称 | 描述 |
---|---|
初始化 | init |
登录回调设置 | addLoginListener |
用户名密码登录 | login |
验证码快速登录 | fastLogin |
Oauth登录 | oauthLogin |
使用上一次登录结果登录 | localLogin |
发送注册验证码 | sendRegVCode |
注册账号 | regist |
修改密码 | modifyPassword |
发送密码重置验证码 | sendRetrieveVCode |
密码重置 | retrievePassword |
修改用户昵称 | modifyUserNickname |
修改用户生日和性别 | modifyUserGenderBirthday |
修改用户头像 | modifyUserIcon |
查询绑定信息 | queryOauthBindInfo |
绑定账号 | bindOauthAccount |
解绑账号 | unbindOauthAccount |
发送账号销毁验证码 | sendDestroyCode |
账号销毁 | destroyAccount |
1. 概述
BroadLink 提供了一套完整的账户系统供开发者接入。开发者有以下多套方式接入:
直接使用BroadLink 智慧星账号系统
- License 申请时选择 BroadLink账号系统 ,此账号系统将与智慧星APP互通
使用BroadLink提供的新建账号系统
- License 申请时选择 自有账号系统 ,此账号系统将与其他账号系统隔离
Oauth 方式使用智慧星账号系统
- 客户自身存在账号系统,在需要远程控制 BroadLink 相关产品功能的时候,唤醒 BroadLink Oauth页面,成功后返回 accessToken等信息,然后传给SDK,实现登录。
Oauth 方式使用客户自身账号系统
- 客户已经存在有一套账号系统,则需要使用 Oauth2.0 方式与 BroadLink云端实现账号互通,然后提供不同的 OpenID , AccessToken等信息给SDK,实现登录。
SDK如果需要控制设备进行远程控制,则必须先完成账号登录。
2. API 接口介绍
账号系统相关接口将会在 BLLetCore 库的 BLLet 类初始化之后,获取初始化必须的参数 CompanyId 和 Lid 。
iOS 系统可以调用 [BLAccount sharedAccount]
接口完成初始化。
Android 系统可以调用 BLAccount.init(companyId, lid)
的静态方法完成初始化,同时需要调用 addLoginListener
方法将需要关心登录信息的监听器加入。
2.1 初始化
public static void init(String companyid, String lid)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
companyid | String | 申请License注册返回的公司ID | 是 |
lid | String | 申请License注册返回的License ID | 是 |
以上两个参数均可由 BLLet 内的方法返回。
//Simple Code
// 初始化之后,获取 lid 和 companyId ,用于其他类库的初始化
String lid = BLLet.getLicenseId();
String companyId = BLLet.getCompanyid();
// 初始化账户库
BLAccount.init(companyId, lid);
2.2 登录回调设置
public static void addLoginListener(BLAccountLoginListener listener)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
listener | BLAccountLoginListener | 需要关心登录结果的监听器 | 是 |
在账户登录成功之后,通过 BLAccountLoginListener
可以告知登录返回的 userId
和 loginSession
。
//Simple Code
// 添加登录成功回调函数
BLAccount.addLoginListener(BLLet.Controller.getLoginListener());
BLAccount.addLoginListener(BLIRCode.getLoginListener());
BLAccount.addLoginListener(BLFamily.getLoginListener());
2.3 账号登录
账号登录是后续操作的基础,SDK提供了多种方式的账号登录,且返回 BLLoginResult 类。
开发者根据需要可以保存相应的 userid 和 loginsession ,便于后续开发。
BLLoginResult说明
参数名称 | 参数类型 | 备注 |
---|---|---|
userid | String | 用户ID |
loginsession | String | 登录的Session |
nickname | String | 用户昵称 |
iconpath | String | 用户头像URL地址 |
sex | String | 用户性别 |
birthday | String | 用户生日 |
fname | String | 用户姓 |
lname | String | 用户名 |
String | 用户邮箱地址 | |
phone | String | 用户手机号 |
countrycode | String | 用户手机号对应的地区码,例如:0086 |
loginip | String | 登录的IP地址 |
logintime | String | 登录时间 |
pwdflag | int | 用户密码是否已设置 |
2.3.1 用户名密码登录
public static BLLoginResult login(String username, String password)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
username | String | 注册时的用户名 | 是 |
password | String | 登录密码 | 是 |
返回参数
参数名称 | 参数类型 | 备注 |
---|---|---|
BLLoginResult | Object | 返回结果 |
2.3.2 验证码快速登录
public static BLLoginResult fastLogin(String phoneOrEmail, String countrycode, String vcode)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
phoneOrEmail | String | 手机号 / 邮箱地址 | 是 |
countrycode | String | 手机号对应的地区码,例如:0086 | 手机号登录时为必须 |
vcode | String | 收到的验证码 | 是 |
2.3.3 Oauth登录
用户可以集成第三方公司的Oauth的SDK,例如 “facebook”,”taobao”等,使用他们的Oauth的accessToken完成登录。
public static BLLoginResult oauthLogin(String thirdType, String thirdID, String accesstoken, String topsign, String nickname, String iconUrl)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
thirdType | String | Oauth 公司名称,例如 “facebook” | 是 |
thirdID | String | OpenID,由Oauth公司注册提供 | 是 |
accesstoken | String | AccessToken,由Oauth公司注册提供 | 是 |
topsign | String | 暂为 null | 否 |
nickname | String | 用户昵称 | 否 |
iconUrl | String | 用户头像URL | 否 |
2.3.4 使用上一次登录结果登录
由于用户的登录的session存在较长的有效时间,所以开发者可以保存登录成功之后的结果,再下一次登录时,直接将其传入到本接口中,进行快速登录。
若session过期,则会在后续的操作中返回错误码,需要再次执行其它登录操作。
public static BLLoginResult localLogin(BLLoginResult loginResult)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
loginResult | Object | 上一次登录成功返回结果 | 必须包含 userId 和 loginsession |
2.4 账号注册
使用BroadLink提供的新建账号系统,则可以使用手机号或者邮箱注册用户。
2.4.1 发送注册验证码
public static BLBaseResult sendRegVCode(String phone, String countrycode);
public static BLBaseResult sendRegVCode(String email);
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
phone | String | 注册手机号 | 是 |
countrycode | String | 注册手机号的国家码 | 手机号时为必须 |
String | 注册邮箱 | 是 |
2.4.2 注册账号
public static BLLoginResult regist(BLRegistParam registParam, File fileIcon)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
registParam | BLRegistParam | 注册用户信息 | 是 |
fileIcon | File | 注册用户头像 | 否 |
返回参数
参数名称 | 参数类型 | 备注 |
---|---|---|
BLLoginResult | Object | 返回结果,注册成功之后可以直接登录 |
2.5 密码相关接口
密码相关功能包括:密码修改和密码重置。 密码修改必须在用户完成登录之后才能修改,密码重置则无须登录。
2.5.1 修改密码
public static BLBaseResult modifyPassword(String oldPassword, String newPassword)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
oldPassword | String | 原始密码 | 是 |
newPassword | String | 新密码 | 是 |
2.5.2 发送密码重置验证码
public static BLBaseResult sendRetrieveVCode(String phoneOrEmail);
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
phoneOrEmail | String | 注册时使用的手机号或者邮箱 | 是 |
2.5.3 密码重置
public static BLLoginResult retrievePassword(String phoneOrEmail, String vcode, String newPassword);
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
phoneOrEmail | String | 注册时使用的手机号或者邮箱 | 是 |
vcode | String | 收到的验证码 | 是 |
newPassword | String | 重置的密码 | 是 |
2.6 用户信息相关接口
用户在完成账号登录之后,在登录结果 BLLoginResult 里,可以获取到完整的用户信息。 如果要对用户信息进行修改,则使用以下几个接口。
2.6.1 修改用户昵称
public static BLBaseResult modifyUserNickname(String nickName)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
nickName | String | 昵称 | 是 |
2.6.2 修改用户生日和性别
public static BLBaseResult modifyUserGenderBirthday(String gender, String birthday)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
gender | String | 性别 | 是 |
birthday | String | 生日 | 是 |
2.6.3 修改用户头像
public static BLModifyUserIconResult modifyUserIcon(File picFile)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
picFile | File | 头像文件 | 是 |
2.7 Oauth 绑定账号
2.7.1 查询绑定信息
public static BLBindInfoResult queryOauthBindInfo()
返回参数
参数名称 | 参数类型 | 备注 |
---|---|---|
bindInfos | List |
绑定信息列表 |
BindInfo 类信息:
参数名称 | 参数类型 | 备注 |
---|---|---|
thirdtype | String | 第三方Oauth 公司名 |
thirdid | String | 第三方Oauth ID |
nickname | String | 第三方昵称 |
2.7.2 绑定账号
public static BLBaseResult bindOauthAccount(String thirdType, String thirdID, String accesstoken, String topSign, String nickname, String userId, String loginSession)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
thirdType | String | 第三方Oauth 公司名 | 是 |
thirdID | String | 第三方Oauth ID | 是 |
accesstoken | String | 第三方Oauth Token | 是 |
topSign | String | 第三方Oauth topSign | 否 |
nickname | String | 第三方Oauth 昵称 | 否 |
userId | String | 登录账号 userId | 否,默认为当前登录账号 |
loginSession | String | 登录账号 loginsession | 否,默认为当前登录账号 |
2.7.3 解绑账号
public static BLBaseResult unbindOauthAccount(String thirdType, String thirdID, String topSign)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
thirdType | String | 第三方Oauth 公司名 | 是 |
thirdID | String | 第三方Oauth ID | 是 |
topSign | String | 第三方Oauth topSign | 否 |
2.8 账号销毁
2.8.1 发送账号销毁验证码
public static BLBaseResult sendDestroyCode(String phoneOrEmail, String countryCode)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
phoneOrEmail | String | 注册时使用的手机号或者邮箱 | 是 |
countrycode | String | 注册手机号的国家码 | 手机号时为必须 |
2.8.2 账号销毁
public static BLBaseResult destroyAccount(String phoneOrEmail, String countryCode, String vcode)
请求参数
参数名称 | 参数类型 | 备注 | 是否必须 |
---|---|---|---|
phoneOrEmail | String | 注册时使用的手机号或者邮箱 | 是 |
countrycode | String | 注册手机号的国家码 | 手机号时为必须 |
vcode | String | 接收到的验证码 | 是 |