管理用户账号信息

更新时间:2024-03-14 07:01:24下载pdf

商业门锁 App SDK 支持对用户账号信息的管理,包括账号绑定、修改用户信息、会话过期处理、账号注销等。

账号绑定邮箱地址

发送验证码

接口说明

void sendBindVerifyCodeWithEmail(@NonNull String countryCode, @NonNull String email, @NonNull IResultCallback callback);

参数说明

参数 说明
countryCode 国家或地区的区号,例如 86 表示中国大陆
email 邮箱地址
callback 回调

绑定邮箱地址

接口说明

void bindEmail(@NonNull String countryCode, @NonNull String email, @NonNull String code, @NonNull String sId, @NonNull IResultCallback callback);

参数说明

参数 说明
countryCode 国家或地区的区号,例如 86 表示中国大陆地区
email 邮箱地址
code 通过 sendBindVerifyCodeWithEmail 获取到的验证码
sId 用户账号的会话(session)ID,您可以从用户数据模型ThingOSUser.getUserInstance().getUser().getSid() 中获取
callback 回调

示例代码

// 绑定邮箱获取验证码
ThingOSUser.getUserInstance().sendBindVerifyCodeWithEmail("86","123456@123.com", new IResultCallback(){

    @Override
    public void onError(String code, String error) {

    }

    @Override
    public void onSuccess() {
        Toast.makeText(mContext, "验证码发送成功", Toast.LENGTH_SHORT).show();
    }
});

// 绑定邮箱
ThingOSUser.getUserInstance().bindEmail("86", "123456@123.com","123456", ThingOSUser.getUserInstance().getUser().getSid(), new IResultCallback() {
    @Override
    public void onError(String code, String error) {

    }

    @Override
    public void onSuccess() {
        Toast.makeText(mContext, "绑定成功成功", Toast.LENGTH_SHORT).show();
    }
});

更换绑定的邮箱

接口说明

void changeUserName(String countryCode, String code, String sId, String userName, IResultCallback callback);

参数说明

参数 说明
countryCode 国家或地区的区号,例如 86 表示中国大陆地区
code 通过 sendVerifyCodeWithUserName 获取到的验证码
sId 用户账号的会话(session)ID,您可以从用户数据模型ThingOSUser.getUserInstance().getUser().getSid() 中获取
userName 新的待绑定的邮箱地址
callback 回调

示例代码

// 换绑邮箱获取验证码
ThingOSUser.getUserInstance().sendVerifyCodeWithUserName("发送验证码到新的待绑定的邮箱地址",ThingOSUser.getUserInstance().getUser().getDomain().getRegionCode(),"86",7, new IResultCallback(){

    @Override
    public void onError(String code, String error) {

    }

    @Override
    public void onSuccess() {
        Toast.makeText(mContext, "验证码发送成功", Toast.LENGTH_SHORT).show();
    }
});

// 换绑邮箱
ThingOSUser.getUserInstance().changeUserName("86", "123456", ThingOSUser.getUserInstance().getUser().getSid(), "123456@123.com",new IResultCallback() {
    @Override
    public void onError(String code, String error) {

    }

    @Override
    public void onSuccess() {
        Toast.makeText(mContext, "绑定成功成功", Toast.LENGTH_SHORT).show();
    }
});

修改用户账号信息

修改用户头像

因为用户自行上传头像会涉及合规问题,给您带来不必要的风险,该接口停止更新,请注意避免使用以及调整应用功能。

接口说明

void uploadUserAvatar(File file, IBooleanCallback callback)

参数说明

参数 说明
file 用户头像图片文件
callback 回调

示例代码

ThingOSUser.getUserInstance().uploadUserAvatar(
    file,
    new IBooleanCallback() {
        @Override
        public void onSuccess() {
        }

        @Override
        public void onError(String code, String error) {

        }
});

修改用户账号昵称

接口说明

void updateNickName(String name, final IReNickNameCallback callback);

参数说明

参数 说明
name 昵称
callback 回调

示例代码

ThingOSUser.getUserInstance().updateNickName(nickName,
    new IReNickNameCallback() {
        @Override
        public void onSuccess() {
        }
        @Override
        public void onError(String code, String error) {

        }
});

更新用户所处的时区

接口说明

void updateTimeZone(String timezoneId, IResultCallback callback);

参数说明

参数 说明
timezoneId 时区 ID,例如 Asia/Shanghai
callback 回调

示例代码

ThingOSUser.getUserInstance().updateTimeZone(
    timezoneId,
    new IResultCallback() {
        @Override
        public void onSuccess() {
        }

        @Override
        public void onError(String code, String error) {

        }
});

更新用户的当前定位

如果有需要的话,定位信息可以通过以下接口上报。

ThingSdk.setLatAndLong(lat,lon);

同步用户账号信息

当用户信息发生变更,例如修改了用户头像、昵称等,需要调用同步用户信息接口,保持用户信息是最新的状态。

如果多台设备同时登录,一台设备修改了用户信息,另外一台设备也需要同步用户信息。可以在查看用户信息时调用同步接口,同步最新的用户信息。

接口说明

void updateUserInfo(IResultCallback callback);

参数说明

参数 说明
callback 回调

示例代码

ThingOSUser.getUserInstance().updateUserInfo(new IResultCallback() {
    @Override
    public void onError(String code, String error) {

    }

    @Override
    public void onSuccess() {
        User user = ThingOSUser.getUserInstance().getUser();
    }
});

用户账号退出登录

账号退出登录分为匿名退出登录和其它账号方式退出登录。

Java 示例

ThingOSUser.getUserInstance().logout(new ILogoutCallback() {
  @Override
  public void onSuccess() {
    //退出登录成功
  }

  @Override
  public void onError(String errorCode, String errorMsg) {
  }
});

停用或注销用户账号

接口说明

注销账号后,一周后才会永久注销并删除用户账户中的所有信息。但是,如果用户在永久注销之前重新登录的话,则注销请求会被取消。

void cancelAccount(IResultCallback callback);

示例代码

ThingOSUser.getUserInstance().cancelAccount(new IResultCallback() {
    @Override
    public void onError(String code, String error) {

    }
    @Override
    public void onSuccess() {

    }
});

处理登录会话过期

由于一些异常或者在一段时间(例如 45 天)不操作账号,用户登录的会话(Session)会失效。同时,修改账号密码、注销用户账户后,也会导致会话过期。此时,需要您引导用户退出应用,重新登录,从而获取 Session。

建议您在 Application 中注册会话过期的监听。一旦出现此类回调,请跳转到登录页面,让用户重新登录。

接口说明

ThingSdk.setOnNeedLoginListener(INeedLoginListener needLoginListener);

实现回调

needLoginListener.onNeedLogin(Context context);

示例代码

ThingSdk.setOnNeedLoginListener(new INeedLoginListener() {
  @Override
  public void onNeedLogin(Context context) {

  }
});