收藏官网首页
查看: 9474|回复: 0

Android SDK 2.0文档 4-SDK流程之用户部分

562

主题

1222

帖子

8133

积分

版主

Rank: 7Rank: 7Rank: 7

积分
8133
跳转到指定楼层
楼主
发表于 2016-7-7 16:22:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
校园创客福利
3.2.        用户部分机智云的用户系统包含了用户的注册、登录、重置密码、修改个人信息等功能,机智云以APPID区分用户系统,不同APPID的用户系统相互独立。更换APPID后,需要重新注册用户。 以下流程中涉及到的**注册方法是用子类继承基类的方式实现的。
3.2.1.        用户部分主要流程图用户的注册方式有多种,比如手机号、普通用户名、邮箱等,APP可以根据需要采取不同的方式。其他流程比如登录、密码修改、个人信息修改等部分,请直接阅读下面的流程文档。
3.2.2.        用户注册机智云提供三种用户注册方式:手机注册、普通用户注册、邮箱注册。
3.2.2.1.        注册手机用户通过手机注册账号,需要一个有效的手机号。注册时需要两步操作:获取短信验证码、用短信验证码注册用户。
第一步:APP获取短信验证码时,SDK向云端发送短信验证码请求,如果请求成功,云端会给手机发送短信验证码。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().requestSendPhoneSMSCode ("your_app_secret", "your_phone_number");

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public void didRequestSendPhoneSMSCode(GizWifiErrorCode result, String token) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 请求成功
        } else {
            // 请求失败
        }
    }
}

第二步:用短信验证码注册时,APP把手机收到的短信验证码传给SDK,填上手机号和密码就可以注册了。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().registerUser("your_phone_number", "your_password", "your_verify_code", GizUserAccountType.GizUserPhone);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public void didRegisterUser(GizWifiErrorCode result, String uid,  String token) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 注册成功
        } else {
            // 注册失败
        }
    }
}

3.2.2.2.        注册普通用户注册普通用户,使用用户名、密码即可创建一个账号。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().registerUser("your_user_name", "your_password", null, GizUserAccountType.GizUserNormal);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public void didRegisterUser(GizWifiErrorCode result, String uid,  String token) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 注册成功
        } else {
            // 注册失败
        }
    }
}

3.2.2.3.        注册邮箱用户通过有效的电子邮箱地址,注册一个账号。注册成功后,云端会给指定邮箱发送注册成功的邮件。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().registerUser("your_email_address", "your_password", null, GizUserAccountType.GizUserEmail);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public void didRegisterUser(GizWifiErrorCode result, String uid,  String token) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 注册成功
        } else {
            // 注册失败
        }
    }
}

3.2.3.        用户登录机智云提供三种用户登录方式:实名登录、匿名登录、第三方账号登录。实名登录适用于设计了登录界面,必须使用用户名密码注册登录以后才能使用的APP。匿名登录适用于没有设计登录界面,由后台自动生成用户账号的APP。登录后获取到的token有效期为7天。
3.2.3.1.        实名登录实名用户登录时,用户名可以是注册过的手机号、邮箱、普通用户名。登录账号要先注册好,如果更换了AppID,登录账号需要重新注册。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().userLogin("your_user_name", "your_password");

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didUserLogin(GizWifiErrorCode result, String uid,  String token) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 登录成功
        } else {
            // 登录失败
        }
    }
}

3.2.3.2.        匿名登录用户每次匿名登录时,获取到的uid是相同的。Android SDK使用Android ID生成登录账号。每个Android系统都有一个独立的Android ID,系统刷机后将改变。因此,系统刷机后匿名登录的用户信息将无法保留。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().userLoginAnonymous();

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didUserLogin(GizWifiErrorCode result, String uid,  String token) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 登录成功
        } else {
            // 登录失败
        }
    }
}

3.2.3.3.        第三方账号登录目前支持的第三方账号有百度、新浪、腾讯。用户可以使用这三者的API获取到uid和token登录机智云,使用第三方账号登录时无需在机智云上注册,可直接登录。 开发者可通过新浪、百度或腾讯api获取uid和token, 具体方法请参考各第三方平台的开发者文档。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 以新浪账号为例
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().loginWithThirdAccount(GizThirdAccountType.GizThirdSINA, "your_third_uid", "your_third_token");

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didUserLogin(GizWifiErrorCode result, String uid,  String token) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 登录成功
        } else {
            // 登录失败
        }
    }
}

3.2.4.        重置密码如果忘记了用户密码,可以通过手机验证码或邮箱设置新的密码。SDK支持手机号重置密码和邮箱重置密码两种,手机号重置需要接收验证码,邮箱重置需要进⼊邮箱,根据链接提示进行重置。
3.2.4.1.        手机号重置密码手机号重置密码时,需要先获取短信验证码再重置。获取短信验证码方式与手机注册时相同。
第一步:获取短信验证码
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().requestSendPhoneSMSCode("your_app_secret", "your_phone_number");

GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public void didRequestSendPhoneSMSCode(GizWifiErrorCode result, String token) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 请求成功
        } else {
            // 请求失败
        }
    }
}

第二步:用短信验证码重置密码
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().resetPassword("your_phone_number", "your_verify_code", "your_new_password", GizUserAccountType.GizUserPhone);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didChangeUserPassword(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 修改成功
        } else {
            // 修改失败
        }
    }
}

3.2.4.2.        邮箱重置密码邮箱重置密码时,云端会给指定邮箱发送安全链接。用户需要到邮箱中查收邮件,并按邮件指示执行重置操作。重置密码邮件有可能进入用户的邮箱的垃圾箱中,需提醒用户。
邮件发送成功回调与密码修改成功回调一致,因此需要注意在回调的时候区分。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().resetPassword("your_email_address", null, "your_new_password", GizUserAccountType.GizUserEmail);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didChangeUserPassword(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
                //重置密码邮件发送成功,提示用户查收
        } else {
                //重置密码邮件发送失败,弹出错误信息
        }
    }
}

3.2.5.        修改密码用户登录后可以修改密码。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().changeUserPassword("your_token", "your_old_password", "your_new_password");

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didChangeUserPassword(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 修改成功
        } else {
            // 修改失败
        }
    }
}

3.2.6.        匿名用户转换匿名注册的用户可以转换为普通用户或者手机用户,转换后匿名用户的信息会转移到实名用户下,原匿名账号失效。但普通用户和手机用户必须是还未注册过的,已注册的用户名是无法转换的。
3.2.6.1.        匿名用户转普通用户转普通用户时,填入待转换的用户名、密码,以及登录的token就可以了。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 匿名转手机用户
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().transAnonymousUser("your_token", "your_user_name", "your_password", null, GizUserAccountType.GizUserNormal);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didTransAnonymousUser(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 转换成功
        } else {
            // 转换失败
        }
    }
}

3.2.6.2.        匿名用户转手机用户转手机用户时,需要填入待转换的手机号、密码、短信验证码,登录的token。获取短信验证码的过程与手机注册时一样。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 匿名转手机用户
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().transAnonymousUser("your_token", "your_phone_number", "your_password", "your_verify_code", GizUserAccountType. GizUserPhone);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didTransAnonymousUser(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 转换成功
        } else {
            // 转换失败
        }
    }
}

3.2.7.        修改用户信息实名用户不支持修改普通用户名,可以修改邮箱、手机号,可以补充个人信息。实名用户必须登录后才能修改这些信息,并且待修改的邮箱或手机号必须是已经注册过的。
实名用户修改邮箱或手机号成功后,可以使用修改后的邮箱或手机号登录。登录后获得的绑定设备列表与原实名用户一致。
修改邮箱或手机号时,可以同时补充个人信息。不想修改个人信息时,对应参数可以传null。同时修改个人信息时,如果邮箱或用户名修改成功而个人信息修改失败,回调会返回成功并在errorMessage中提示个人信息修改失败的原因。
3.2.7.1.        修改用户邮箱只修改用户邮箱时,个人信息的参数传null,用户类型可以指定为邮箱用户。以下为修改用户邮箱的示例代码。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().changeUserInfo("your_token", "your_email_address", null, GizUserAccountType.GizUserEmail, null);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didChangeUserInfo(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 修改成功
        } else {
            // 修改失败
        }
    }
}

3.2.7.2.        修改用户手机号只修改用户手机号时,个人信息参数传null,用户类型可以指定为手机用户。修改手机号之前,需要先获取手机验证码。以下示例代码为修改用户手机号的代码,获取短信验证码的代码请参考手机号注册。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().changeUserInfo("your_token", "your_phone_number", "your_verify_code", GizUserAccountType.GizUserPhone, null);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didChangeUserInfo(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 修改成功
        } else {
            // 修改失败
        }
    }
}

3.2.7.3.        修改用户个人信息只修改用户个人信息时,手机号或邮箱参数传null,用户类型可以指定为普通用户。个人信息包含多项内容,通过GizUserInfo类指定。其中不想修改的信息填null,云端会保留上次修改过的值。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
GizWifiSDK.sharedInstance().setListener(mListener);

GizUserInfo additionalInfo = new GizUserInfo();
additionalInfo.setName("nickname");
additionalInfo.setGender(GizUserGenderType.Male);
additionalInfo.setBirthday("1990-1-1");
additionalInfo.setAddress("Beijing");
additionalInfo.setRemark("home");

GizWifiSDK.sharedInstance().changeUserInfo("your_token", null, null, GizUserAccountType.GizUserNormal, additionalInfo);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didChangeUserInfo(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 修改成功
        } else {
            // 修改失败
        }
    }
}

3.2.7.4.        同时修改邮箱和个人信息修改邮箱同时修改个人信息时,用户类型需指定为邮箱用户。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
GizWifiSDK.sharedInstance().setListener(mListener);

GizUserInfo additionalInfo = new GizUserInfo();
additionalInfo.setName("nickname");
additionalInfo.setGender(GizUserGenderType.Male);
additionalInfo.setBirthday("1990-1-1");
additionalInfo.setAddress("Beijing");
additionalInfo.setRemark("home");

GizWifiSDK.sharedInstance().changeUserInfo("your_token", "your_email_address", null, GizUserAccountType.GizUserEmail, additionalInfo);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didChangeUserInfo(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 修改成功
        } else {
            // 修改失败
        }
    }
}

3.2.7.5.        同时修改手机号和个人信息修改手机号同时修改个人信息时,用户类型需指定为手机用户。修改手机号同样需要先获取手机验证码,获取短信验证码的代码请参考手机号注册。
【示例代码】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
GizWifiSDK.sharedInstance().setListener(mListener);

GizUserInfo additionalInfo = new GizUserInfo();
additionalInfo.setName("nickname");
additionalInfo.setGender(GizUserGenderType.Male);
additionalInfo.setBirthday("1990-1-1");
additionalInfo.setAddress("Beijing");
additionalInfo.setRemark("home");

GizWifiSDK.sharedInstance().changeUserInfo("your_token", "your_phone_number", "your_verify_code", GizUserAccountType.GizUserPhone, additionalInfo);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public  void didChangeUserInfo(GizWifiErrorCode result) {
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
            // 修改成功
        } else {
            // 修改失败
        }
    }
}


1、机智云QQ群: 287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-kit
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表