█ 【安卓学习之互动直播】 腾讯云直播 1 - 注册/登录/个人信息
█ 相关文章:
● 【安卓学习之互动直播】 腾讯云直播 1 - 注册/登录/个人信息
● 【安卓学习之互动直播】 腾讯云直播 2 - 获取直播列表/创建房间
█ 读前说明:
● 本文通过学习别人写demo,学习相关知识,如果涉及侵权请告知
● 本文只简单罗列相关的代码实现过程
● 涉及到的逻辑以及说明也只是简单介绍,主要当做笔记,了解过程而已
● 直播列表、创建房间等信息是存在自己搭建的服务器上
● 目前腾讯云互动直播在 GitHub 上提供了两个示例:
随心播 演示了包括界面和后台交互的完整的直播流程。
简单直播 最简单的互动直播示例,演示了最关键的几个接口的调用。
● 随心播客户端刷不出直播列表? - 问答 - 云+社区 - 腾讯云
█ 直播流程示例:
● 实际上还缺少了直播列表等信息,这些需要自己搭建服务器来实现
█ SDK初始化:
● iLiveSDK 的部分类的预初始化,是所有行为的第一步,告知身份 appId
● 在Application中直接进行SDK初始化(像极光推送、七牛云等SDK的初始化也是在这里处理)
//iLiveSDK 初始化
ILiveSDK.getInstance().initSdk(getApplicationContext(), appid, accoutype);
//初始化直播场景
ILVLiveConfig liveConfig = new ILVLiveConfig();
ILVLiveManager.getInstance().init(liveConfig);
PS1:appid和accoutype是从腾讯云控制台创建应用时,自动生成的
PS2:sdkAppId(应用标识)是腾讯云后台用来区分不同 App 的标识,在 控制台 开通服务并且完成创建应用后,自动生成一个对应的应用标识。
PS3:accountType(帐号类型)是登录应用的帐号类型,也是在创建应用后自动分配,用于用户鉴权功能。
● 另外通常登录后会返回用户信息(TIMUserProfile),这些信息可以自定义,也需要在Application中定义:
List<String> customInfos = new ArrayList<String>();
customInfos.add(CustomProfile.CUSTOM_LEVEL);// 等级
customInfos.add(CustomProfile.CUSTOM_RENZHENG);// 认证
TIMManager.getInstance().initFriendshipSettings(CustomProfile.allBaseInfo, customInfos);
PS:allBaseInfo是腾讯基础字段,如生日、头像、性别、年龄;customInfos是自定义字段,如等级、实名认证
█ 注册的实现:
● iLiveLogin:使用托管方式或独立模式,在获取到用户的 sig 后,使用登录接口,告知后台音视频模块上线了(包括 avsdk)
● 通常注册成功后就可以直接去实现登录功能:
ILiveLoginManager.getInstance().tlsRegister(account, password, new ILiveCallBack() {
@Override
public void onSuccess(Object data) { //注册成功
login();//登录一下
}
@Override
public void onError(String module, int errCode, String errMsg) {//注册失败
}
});
PS:account是注册的账号,password是注册的密码
█ 登录的实现:
● TLS 登录鉴权:是腾讯为开发者快速完成帐号集成接入云通讯服务而提供的一套通用帐号登录组件。实现包括 QQ、微信、新浪微博、人人在内的多种帐号类型登录校验功能。
● 登录 QQ 用的是 QQ 号和密码,登录 IM SDK 也是一样,只是肯定不能再用 QQ 号和密码了,而是使用您指定的用户名(userid)和密码(usersig)。
● 用户名(userid),作为登录 IM SDK 的 userid;密码(usersig) 本质是对 userid、appid 等信息的非对称加密。
● 非对称加密用的加密密钥和解密密钥是不同的,您的服务器可以持有私钥并对 userid 和 appid 进行非对称加密,加密之后的结果就是 usersig ;而腾讯云同步持有您的公钥,这样一来,腾讯云就可以确认 usersig 是否合法,从而可以确认它是否是由您的服务器签发的。
● 客户端的每一个用户都需要一个独立的 userSig,userSig 是有效期的( 在生成时设置,一般为三个月 ),如果 userSig 过期,用户登录时会收到错误码 8051,这时用户需要重新生成 userSig,拿到新的 userSig 再登录。
● 如果 使用托管方式,则必须实现如下步骤,如果使用独立模式,则可以跳过该步骤:
//调用腾讯IM登录
ILiveLoginManager.getInstance().tlsLogin(account, password, new ILiveCallBack<String>() {
@Override
public void onSuccess(String data) {
//登陆成功。
loginLive(accountStr, data);
}
@Override
public void onError(String module, int errCode, String errMsg) {
//登录失败
}
});
● 实现真正的登录
ILiveLoginManager.getInstance().iLiveLogin(accountStr, data, new ILiveCallBack() {
@Override
public void onSuccess(Object data) {
//最终登录成功
getSelfInfo();
}
@Override
public void onError(String module, int errCode, String errMsg) {
//登录失败
}
});
█ 用户信息的获取:
● 登录成功后,就可以直接通过SDK包获取登录的用户信息
TIMFriendshipManager.getInstance().getSelfProfile(new TIMValueCallBack<TIMUserProfile>() {
@Override
public void onError(int i, String s) {//获取信息失败
}
@Override
public void onSuccess(TIMUserProfile timUserProfile) {
//获取自己信息成功
}
});
timUserProfile包含了腾讯基础字段,如生日、头像、性别、年龄和开发者自定义字段,如等级、实名认证等信息
● 用户信息TIMUserProfile的获取, 可以通过get()方法获取,比如getIdentifier()获取用户的identifier;getFaceUrl()获取用户头像URL;getLocation()获取位置信息;getCustomInfo()获取用户自定义信息等等;
● 用户信息的修改,不能通过TIMUserProfile进行修改,只能通过TIMFriendshipManager.getInstance()的set()方法来修改, 比如setNickName(String nickName,TIMCallBack cb)设置用户自己的昵称;setFaceUrl (String faceUrl,TIMCallBack cb)设置用户自己的头像;setBirthday(long birthday,TIMCallBack cb)设置自己的生日;setCustomInfo(String key, byte[] value, TIMCallBack cb)设置自己的自定义字段;等等
█ 相关资料:
● 1.2018年02月11日 腾讯im及时登录注册 - 隔壁老张头的小窝 - CSDN博客
● 2.云通信 - 文档平台 - 腾讯云
● 3.下载代码 - 互动直播 - 文档平台 - 腾讯云(文档平台 ->互动直播 ->IE 浏览器集成 ->下载代码)
● 4.下载代码 - 互动直播 - 文档平台 - 腾讯云(文档平台 ->互动直播 ->Android 端集成 ->下载代码)
转载请注明出处:
https://blog.csdn.net/ljb568838953/article/details/81591807