一般的社交型和客服型系统,需要集成IM,腾讯是国内比较优秀的IM底层技术厂家之一,
毕竟腾讯公司是做IM起家的,优秀的代表QQ和微信,众所周知,也是大家常用的app。
那么接下来就有小编来讲一下腾讯云IM购买和接入指南。
1,腾讯云IM购买
1.1,注册腾讯云账号并实名
联系我可以获取腾讯云额外折扣:http://wo.ccusoft.com
1.2,购买腾讯云IM
1.3,你根据自己的情况选择对应的套餐和功能。
1.4,
2,腾讯云IM接入
下面是腾讯云官网接入帮助文档地址:
即时通信 IM SDK API(Android)cloud.tencent.com
腾讯云IM对应的API分成客户端API和服务器端API。
下面就有小编讲一下IOS端和后台的腾讯云IM接入
2.1,IOS端腾讯云IM接入
2.1.1,IOS端腾讯云IM的API地址:
即时通信 IM SDK API(iOS & Mac)cloud.tencent.com
2.1.2、加入腾讯云的SDK
2.1.3、加入需要的框架
2.1.4、实现登录功能
主要代码:
#import <ImSDK/ImSDK.h>
//腾讯云测试appid
#define kTLSAppid @"1400001533"
#define kSdkAppId @"1400001533"
#define kSdkAccountType @"792"
加入代理监听状态
@interface LoginController ()<TIMUserStatusListener>
我们先初始化
[[TIMManager sharedInstance]initSdk:1400001533 accountType:@"792"]; //初始化
[[TIMManager sharedInstance]log:TIM_LOG_DEBUG tag:@"insdk" msg:@"hello"]; //打印日志
//代理
[[TIMManager sharedInstance]setUserStatusListener:self];
#pragma mark -登录
- (void)loginAction{
TIMLoginParam *param = [[TIMLoginParam alloc] init];
param.appidAt3rd = kSdkAppId;
param.sdkAppId = [kSdkAppId intValue];
param.accountType = kSdkAccountType;
param.identifier = @"suncuihua";//用户名
//这个长长的是签名
param.userSig = @"eJx10EtLw0AUhuF9fkWYtehcTNIIXTglNLFpMW216GaYJpN0EJPpXEKr*N8tUTAbz-Z94IPz6fm*D7b55pqXZeday*xZCeDf*SCKMbj6y0rJinHLiK6GjG7h5VBAyEiJk5JaMF5boQeFgxhf2IjISrRW1vIXGNeWTh4cHxFTvbFh7-8hI5shLpNils0fUHfaLVJMTZ*023O6PxYZDHmYzynZ9SJP9zrJsqhZ43tJ0SYsoucjLbv1YvXYP73WH93qBTp0KCfQNEsV8MLckJmmzXQ6mrTy-ecxKMAYwxhOQuB9ed8LQVfn";
[[TIMManager sharedInstance]login:param succ:^{
ChatController *chat = [[ChatController alloc]init];
[self.navigationController pushViewController:chat animated:YES];
// UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"登录成功" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
//
// [alert show];
} fail:^(int code, NSString *msg) {
//特别注意这个code 6208 意思是其他终端登录帐号被踢,需重新登录
if (code == 6208) {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"其他终端登录帐号被踢,需重新登录" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
[alert show];
}
}];
}
/**
* 踢下线通知 在别的手机上登录了给我们发的通知 和code 6208是不一样的
*/
- (void)onForceOffline{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"账户已被踢" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
[alert show];
}
/**
* 断线重连失败
*/
- (void)onReConnFailed:(int)code err:(NSString*)err{
}
/**
* 用户登录的userSig过期(用户需要重新获取userSig后登录)
*/
- (void)onUserSigExpired{
}
退出登录
[[TIMManager sharedInstance]logout:^{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"登出成功" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
[alert show];
} fail:^(int code, NSString *msg) {
}];
好了,现在的整个登录流程就走完了。
2.2,后台腾讯云IM接入
功能指引:
腾讯云SDK(web端) Vue2.0
Step 1 :
腾讯云IM配置指引 无需概述 即时通信 IM 一分钟跑通 Demo
Step 2 :
参考使用的是web端的sdk脚本,无需安装,直接脚本引入即可
登录使用 webim.login(loginInfo, listeners, options,cbOk,cbErr),回调函数自行选择
SKD Login只支持单点登录,如果需要多点登录需要在配置项里进行IM配置
Step 3:
图片上传使用SparkMD5进行,需要引入网上脚本地址,无法使用npm进行安装,
登录login api里的accountType参数虽说被废弃,但是在上传图片的过程中,如果不填写此参数,那么将会报参数无效。
220报错是因为某参数无效,此参数不能是数值,需要转换成字符串