Skip to content

IM开发文档

jackning edited this page Aug 25, 2020 · 3 revisions

萝卜丝·IM开发文档

萝卜丝·云客服提供四种集成方法:

  • 完全基于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) {
    //
}];