一般的社交型和客服型系统,需要集成IM,腾讯是国内比较优秀的IM底层技术厂家之一,

毕竟腾讯公司是做IM起家的,优秀的代表QQ和微信,众所周知,也是大家常用的app。

那么接下来就有小编来讲一下腾讯云IM购买和接入指南。

1,腾讯云IM配置选择

1.1,点击:注册腾讯云账号并实名

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报错是因为某参数无效,此参数不能是数值,需要转换成字符串

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐