-
Notifications
You must be signed in to change notification settings - Fork 3
IM开发文档
jackning edited this page Aug 25, 2020
·
3 revisions
萝卜丝·云客服提供四种集成方法:
- 完全基于pod的方式(推荐,参考:ByteDeskDemo)
- 半依赖pod集成方式,添加开源bdui项目,方便自定义ui(参考:ByteDeskDemo)
- 项目中添加framework的方式
- 不依赖于cocoapod方式
第一种方式:完全依赖pod集成,在Podfile中添加如下:
pod 'FMDB'
pod 'MQTTClient'
pod 'AFNetworking'
pod 'QMUIKit'
pod 'M80AttributedLabel'
pod 'HCSStarRatingView'
pod 'CocoaLumberjack'
pod 'bytedesk-ui'
pod 'bytedesk-core'
第二种方式:支持自定义界面。首先添加bdui到自己项目中,然后将其添加为项目的依赖,在Podfile中添加如下:
pod 'FMDB'
pod 'MQTTClient'
pod 'AFNetworking'
pod 'QMUIKit'
pod 'M80AttributedLabel'
pod 'HCSStarRatingView'
pod 'CocoaLumberjack'
pod 'bytedesk-core'
第三种方式:分别添加bytedesk-core.framework,bytedesk-ui.framework到自己项目中,然后在项目Build Settings中搜索Framework Search Paths, 并将上述两个framework所在路径的文件夹添加进去,如UseLocalFrameworkDemo中:$(PROJECT_DIR)/demo/frameworks,在Podfile中添加如下:
pod 'FMDB'
pod 'MQTTClient'
pod 'AFNetworking'
pod 'QMUIKit'
pod 'M80AttributedLabel'
pod 'HCSStarRatingView'
pod 'CocoaLumberjack'
第四种方式:不依赖于cocoapods, 具体也可参考:示例 ByteDeskDemoFramework,注:默认demo可以运行在模拟器,如果要在真机运行,请在ByteDeskDemoFramework/vendors-device文件夹下复制相关frameworks替换到ByteDeskDemoFramework/frameworks/vendors; 如果要在模拟器运行,请复制ByteDeskDemoFramework/vendors-simulator文件夹下复制相关frameworks到替换到ByteDeskDemoFramework/frameworks/vendors
- #import <bytedesk-core/bdcore.h>
- #import <bytedesk-ui/bdui.h>
- 获取appkey:登录后台->客服管理->渠道管理->添加App->appkey列
- 获取subDomain,也即企业号:登录后台->客服管理->客服账号->企业号
登录接口,默认用户名登录,系统自动生成一串数字作为用户名,其中appkey和企业号需要替换为真实值
获取联系人列表接口
// 从本地数据库读取数据
self.mContactArray = [BDCoreApis getContacts];
// 从远程服务器加载数据
[BDCoreApis getContactsResultSuccess:^(NSDictionary *dict) {
//
} resultFailed:^(NSError *error) {
//
}];
// 发起一对一会,其中参数为BDContactModel
[BDUIApis agentPushChat:self.navigationController withContactModel:self.mContactModel];
获取群组列表接口
// 从本地数据库读取数据
self.mGroupArray = [BDCoreApis getGroups];
// 从远程服务器加载数据
[BDCoreApis getGroupsResultSuccess:^(NSDictionary *dict) {
//
} resultFailed:^(NSError *error) {
//
}];
创建群组接口
// 参数1:群组昵称,参数2:群组成员Uid数组,具体用法参考Demo中KFContactSelectViewController.m文件
[[BDCoreApis sharedInstance] agentGroupCreate:nickname selectedContacts:selectedContactUids resultSuccess:^(NSDictionary *dict) {
//
} resultFailed:^(NSError *error) {
//
}];
进入群聊接口
// 进入群组,其中参数为BDGroupModel
[BDUIApis agentPushChat:self.navigationController withGroupModel:self.mGroupModel];
获取会话列表接口
// 从本地数据库读取数据
self.mThreadArray = [BDCoreApis getThreads];
// 从远程服务器加载数据
[BDCoreApis getThreadResultSuccess:^(NSDictionary *dict) {
//
} resultFailed:^(NSError *error) {
//
}];
进入会话接口
// 参数类型为BDThreadModel
[BDUIApis agentPushChat:self.navigationController withThreadModel:threadModel];
获取排队列表接口
// 从本地数据库读取数据
self.mQueueArray = [BDCoreApis getQueues];
// 从远程服务器加载数据
[BDCoreApis getQueueResultSuccess:^(NSDictionary *dict) {
//
} resultFailed:^(NSError *error) {
//
}];
接入排队接口
设置自动回复接口
// 仅设置本地数据
[BDSettings setAutoReplyContent:@"外出就餐,请稍后"];
// 设置服务器状态,参数1:自动回复为TRUE,否则设置为FALSE;参数2:设置自动回复内容
// 具体用法参考ByteDeskDemo中KFSettingsViewController.m文件
[BDCoreApis agentUpdateAutoReply:TRUE withContent:@"外出就餐,请稍后" resultSuccess:^(NSDictionary *dict) {
//
} resultFailed:^(NSError *error) {
//
}];
设置接待状态接口
// 仅设置本地数据
[BDSettings setAcceptStatus:@"在线"];
// 设置服务器状态
// 具体用法参考ByteDeskDemo中KFSettingsViewController.m文件
[BDCoreApis agentSetAcceptStatus:BD_USER_STATUS_ONLINE resultSuccess:^(NSDictionary *dict) {
//
} resultFailed:^(NSError *error) {
DDLogError(@"%s %@", __PRETTY_FUNCTION__, error);
}];
退出登录接口
[BDCoreApis logoutResultSuccess:^(NSDictionary *dict) {
//
} resultFailed:^(NSError *error) {
//
}];
- 萝卜丝让客户服务更智能