腾讯云在线直播二

书接上文,将环境配置好以后就可以开发云视频的各个流程了。首先我们从注册开始。目前为止我做好的只有手机号登录注册到在线直播这个流程。以后会陆续补充其他的登录注册方式。腾讯云登录注册包含了手机号、普通账号、邮箱以及第三方的方式。在腾讯云平台的文档里面我看到腾讯云要支持的第三方有微信、qq、人人网、新浪微博等等。但是代码里面暂时只看到了微信和qq的登录验证。可能是后续会支持那么多平台但是现在还没写出来(是不是腾讯在打广告啊),当然也可能是本人尚未找到其他的平台验证的接口。毕竟本人尚未将所有的登录注册方式验证过。好了,惯例,不多说废话。开始代码讲述。
1.手机号注册:
需要看文档的可以看下这个腾讯云直播接口文档
2.在写登录注册的时候需要一些demo里面封装好的接口文档(直接使用上面接口文档的可以不用看下面的步骤了)这三个文件夹里面的就是需要导入的demo里面的文件。
都在这三个文件夹中
第一个文件夹
第二个文件夹
第三个文件夹
3.这些文件导入后引入相关头文件可以上代码了。

#import "TLSRegister.h"
#import "TLSLogin.h"

首先引入手机号注册的代理。@property (nonatomic, weak) id <TLSPwdRegListener> phoneRegisterdelegate;
4.实现委托self.phoneRegisterdelegate = self;
5.实现注册回调方法[[TLSRegister sharedInstance].accountHelper TLSPwdRegAskCode:phoneStr andTLSPwdRegListener:self.phoneRegisterdelegate];
6.引入注册的回调方法
这些方法里面处理相关的注册方法
7.手机号注册成功以后会回调这个方法

-(void) OnPwdRegAskCodeSuccess:(int)reaskDuration andExpireDuration:(int) expireDuration
{
    NSLog(@"请求短信验证码成功");
}

8.然后将获取的验证码在验证方法里面写,代码如下

[[TLSRegister sharedInstance].accountHelper TLSPwdRegVerifyCode:yanzhengma  andTLSPwdRegListener:self.phoneRegisterdelegate];

9.接下来就可以等待回调成功了,在验证码成功的方法里面再调用注册密码即可。
验证码验证成功方法:

-(void) OnPwdRegVerifyCodeSuccess
{
    NSLog(@"验证短信验证码成功");
}

10.提交密码方法

[[TLSRegister sharedInstance].accountHelper TLSPwdRegCommit:password andTLSPwdRegListener:self.phoneRegisterdelegate];

到此注册手机号就已经结束了。下面我们开始用手机号登陆
1.如果注册的手机跟登陆的手机是同一个,并且没有登陆过其他账号则可以直接登陆,否则需要一个验证方法,验证是否需要密码登陆,然后才可以调用登陆方法。具体代码如下:

//判断本地是否需要再登录
    BOOL need =  [[TLSLogin sharedInstance].loginHelper needLogin:phoneStr];
    //密码登录,获取票据
    if (need) {
        //设置登录代理
        self.logindelegate = self;
        NSInteger success = [[TLSLogin sharedInstance].loginHelper TLSPwdLogin:phoneStr andPassword:pwdStr andTLSPwdLoginListener:self.logindelegate];
        NSLog(@"登录结果%ld",(long)success);
    }
    //本地已经登陆过了
    else
    {
        //获取本地保存TLS票据
        //获取签名
        NSString* userSig = [[TLSLogin sharedInstance].loginHelper getTLSUserSig:phoneStr];
        //如果本地有签名直接登录
        if(userSig != nil)
        {
            //登录到IM服务器
            [SVProgressHUD showInfoWithStatus:@"正在登录随心播"];
            [[MultiIMManager sharedInstance] loginPhone:phoneNumStr sig:userSig succ:^(NSString* loginMsg) {
                [[Business sharedInstance]getUserInfoByPhone:phoneNumStr succ:^(NSString *msg, id data) {
                    [[UserInfo sharedInstance]setUserFromDBSig:userSig andInfo:data ];
                    [SVProgressHUD showSuccessWithStatus:loginMsg];
                    [self changeToLivePage];
                } fail:^(NSString *error) {
                    [SVProgressHUD showErrorWithStatus:error];
                }];
            } fail:^(NSString *err) {
                [SVProgressHUD showErrorWithStatus:err];
            }];
        }

    }

2.如果直接走else的方法那就不需要再放到代理回调方法中写代码,否则需要如下代理回调方法:

/**
 *  密码登陆要求验证图片验证码
 *
 *  @param picData 图片验证码
 *  @param errInfo 错误信息
 */
-(void) OnPwdLoginNeedImgcode:(NSData *)picData andErrInfo:(TLSErrInfo *)errInfo
{
    NSLog(@"%@密码登陆请求图片验证成功%@",picData,errInfo.sErrorMsg);
}
/**
 *  密码登陆请求图片验证成功
 *
 *  @param picData 图片验证码
 */
-(void) OnPwdLoginReaskImgcodeSuccess:(NSData *)picData
{
    NSLog(@"密码登陆请求图片验证成功%@",picData);
}
/**
 *  密码登陆成功
 *
 *  @param userInfo 用户信息
 */
-(void) OnPwdLoginSuccess:(TLSUserInfo *)userInfo
{
    NSLog(@"密码登陆成功%@",userInfo.identifier);
    //获取签名
    NSString* userSig = [[TLSLogin sharedInstance].loginHelper getTLSUserSig:userInfo.identifier];
    if(userSig == nil)
    {
        [SVProgressHUD showErrorWithStatus:@"获取签名为空"];
        return;
    }
    //手机号登录到IM服务器
    [SVProgressHUD showInfoWithStatus:@"正在登录随心播"];
    [[MultiIMManager sharedInstance] loginPhone:phoneStr sig:userSig succ:^(NSString* loginMsg) {
        [[Business sharedInstance]getUserInfoByPhone:phoneStr succ:^(NSString *msg, id data) {
            [[UserInfo sharedInstance]setUserFromDBSig:userSig andInfo:data ];
            [SVProgressHUD showSuccessWithStatus:loginMsg];
        } fail:^(NSString *error) {
            [SVProgressHUD showErrorWithStatus:error];
        }];
    } fail:^(NSString *err) {
        [SVProgressHUD showErrorWithStatus:err];
    }];
}
/**
 *  密码登陆失败
 *
 *  @param errInfo 错误信息
 */
-(void) OnPwdLoginFail:(TLSErrInfo *)errInfo
{
    NSLog(@"密码登陆失败%@",errInfo.sErrorMsg);
}
/**
 *  秘密登陆超时
 *
 *  @param errInfo 错误信息
 */
-(void) OnPwdLoginTimeout:(TLSErrInfo *)errInfo
{
    NSLog(@"密登陆超时%@",errInfo.sErrorMsg);
}

3.如果所有的回调都成功,程序会提示登陆成功。也会将个人信息保存到userinfo这个方法里面。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值