6500
1. 概述
2. JS-SDK接入步骤
3. 获取页面参数
4. 监听选中的访客(暂未开放)
5. 发送图文消息给访客
6. 发送文本消息给访客(未开放)
7. 发送图片消息给访客(未开放)
8. 发送视频消息给访客(未开放)
9. 发送语音消息给访客(未开放)
10. 发送文件消息给访客(未开放)
11. 标记会话业务状态
12. 监听访客消息(未开放)
13. 监听访客信息更新(未开放)
一洽客服端JS-SDK是向一洽企业客户提供的基于业务系统和客服工作台通信能力为基础的网页开发工具包。
通过此JS-SDK企业开发者可在一洽提供的客服功能之上提供更加符合企业业务的功能和能力。开发者可借助此API实现向访客发送消息,监控访客消息,监听crm更新等一洽客服工作台的业务功能。比如通过业务系统向正在聊天的访客发送企业自有faq系统中的问句答案,通过集成商品列表的业务系统向正在聊天的访客已图文消息的形式推荐产品。
步骤一:引入js
在需要调用sdk接口的业务系统页面引入如下js
https://es.echatsoft.com/open/staff/jssdk-1.0.0.js
步骤二:通过config接口注入权限验证配置
所有需要调用SDK接口的页面必须经过一洽的身份验证后,一洽客服工作台才会接受业务系统向客服端发送的指令。
echatSDK.config({
debug: true, // 开启调试模式,所有业务系统调用的sdk接口都会在控制台打印出来,包括调用的方法以及参数。
timestamp: , // 必填,生成签名的时间戳
nonce: '', // 必填,生成签名的随机串
signature: ''// 必填,签名
});
签名算法见:签名算法介绍
步骤三:通过ready接口处理成功验证
只有在验证成功后在可以正常使用SDK提供的接口功能。
echatSDK.ready(function(){
// config信息验证成功后会执行ready方法,所有接口调用都必须在config接口获得结果之后
});
步骤四:通过error接口处理失败验证
echatSDK.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体验证失败信息通过res查看。
});
通过此方法获取业务系统页面打开时测参数属性值。业务系统打开时一洽会根据客户的配置将业务系统所需的数据通过get的方式传送给业务系统页面。
get参数的传送和具体信息详见:业务系统接入文档
调用方法:echatSDK.getParamData(paramName,subParamName);
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
paramName | String | 是 | 参数名称 |
subParamName | String | 否 | 字参数名称,比如visitorData参数的二级参数名visitorId。获取规则为paramName的值根据&分割后获取的子参数的值 |
返回值:
字符串类型的参数值。
例如获取传入的访客ID
var visitorId = echatSDK.getParamData("visitorData","visitorId");
通过次访客接接收到一洽工作台中客服在对话、留言、监控、访客列表位置实时选中的访客ID。此ID和当前工作台中客户信息栏显示的访客ID保持一致。
调用方法:echatSDK.onSelectVisitor(callback);
注:使用此方法时业务系统不应该接收任何实时的参数,否则访客切换时当前业务系统页面也会被reload,那么此回调也就不会产生
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
callback | function | 是 | 回调方法,在客服选择访客后一洽会回调此方法 |
回调方法传参为Json对象。
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chatStatus | int | 是 | 对话状态 0-未对话,1-对话开始,2-对话结束 |
metaData | String | 否 | 加密的会员信息,当前选择访客如果是会员则会传入 |
myData | String | 否 | 访客接入时可传入了myData,则此值不为空 |
visitorData | Json | 是 | 访客基本信息,和业务系统传参参数一直 |
routeData | Json | 是 | 访客接入的路由信息,和业务系统传参参数一直 |
chatData | Json | 否 | 访客的对话基本信息,和业务系统传参参数一直,正在对话中的访客此值不为空 |
crmData | Json | 是 | 访客的基本客户信息,和业务系统传参参数一直 |
给当前选中的访客发送图文消息。
调用方法:echatSDK.pushVisitorEvent(visEvt);
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
visEvt | Json | 是 | 图文消息的详细信息,具体属性介绍见:图文消息介绍 |
示例:
var visEvt = {"eventId":"cook1005","title":"2016秋冬新品复古欧式感大花苞袖宽松毛衣","content":"<div style='color:#666;line-height:20px'>原价:<span style='text-decoration:line-through'>¥414.99</span></div><div style='color:#666;line-height:20px'>促销:<span style='color:red'>¥211.64</span></div><div style='color:#666;line-height:20px'>运费:<span style='color:#ccc'>卖家承担运费</span></div>","imageUrl":"http://demo.echatsoft.com/vmini/mycookie/images/0.jpg","url":"apiUrl(263,'reload')","memo":"评价(299)"};
ecahtSDK.pushVisitorEvent(visEvt);
效果:
给当前选中的访客发送文本消息。
调用方法:echatSDK.sendTxtMsgToVisitor(content);
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
content | String | 是 | 要发送的消息内容 |
给当前选中的访客发送文本消息。
调用方法:echatSDK.sendImageToVisitor(imageInfo);
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
imageInfo | Json | 是 | 发送的图片详细信息 |
smallImg | String | 是 | 图片的小图地址,用来窗口内渲染使用 |
sourceImg | String | 是 | 图片的原图地址,查看原图时使用 |
给当前选中的访客发送文本消息。
调用方法:echatSDK.sendVideoToVisitor(videoInfo);
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
videoInfo | Json | 是 | 发送的视频详细信息 |
videoThumbUrl | String | 是 | 视频缩略图的图片地址 |
fileUrl | String | 是 | 视频文件地址.支持的视频格式:mp4 |
给当前选中的访客发送文本消息。
调用方法:echatSDK.sendVoiceToVisitor(voiceInfo);
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
voiceInfo | Json | 是 | 发送的语音消息详细信息 |
fileUrl | String | 是 | 语音文件的地址,支持格式:mp3,wav |
voiceDuration | long | 是 | 语音的播放时长,单位:秒 |
给当前选中的访客发送文本消息。
调用方法:echatSDK.sendFileToVisitor(fileInfo);
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
fileInfo | Json | 是 | 发送的文件消息详细信息 |
fileUrl | String | 是 | 发送文件的地址 |
fileName | String | 是 | 发送文件的文件名 |
fileSize | long | 是 | 发送文件的大小,单位:byte |
给当前选中的会话设置企业的业务状态,如当前业务系统并非关联的会话,那么此方法调用失效。
调用方法:echatSDK.setVisitorChatSign(chatSign);
参数介绍:chatSign为json对象
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chatSign | int | 是 | 会话业务状态,只允许0和1。其他业务状态将被忽略。 |
示例:
var chatSign = {"chatSign":1};
echatSDK.setVisitorChatSign(chatSign);
访客发送消息给客服时触发此监听。
调用方法:echatSDK.onReceiveMsg(callback);
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
callback | function | 是 | 当前选中访客收到访客消息时的回调函数 |
回调函数接收参数为json
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
visitorId | String | 是 | 发送消息的访客ID |
msgType | int | 是 | 访客发送消息的类型 1:文本消息 2:图片消息 3:视频消息 4:语音消息 5:文件消息 |
content | String | 否 | 要发送的消息内容(文本消息时有效) |
smallImg | String | 否 | 图片的小图地址,用来窗口内渲染使用(图片消息时有效) |
sourceImg | String | 否 | 图片的原图地址,查看原图时使用(图片消息时有效) |
videoThumbUrl | String | 否 | 视频缩略图的图片地址(视频消息时有效) |
fileUrl | String | 否 | 文件地址(视频、语音、文件消息时有效) |
voiceDuration | long | 否 | 语音的播放时长,单位:秒(语音消息时有效) |
fileName | String | 否 | 发送文件的文件名(文件消息时有效) |
fileSize | long | 否 | 发送文件的大小,单位:byte(文件消息时有效) |
访客的crm信息被客服更新时触发此监听。回调函数会收到客服本次更新的客服信息。
注:只有当前登录客服更新某个访客的客户信息时才会触发回调。
调用方法:echatSDK.onCrmUpdate(callback);
参数介绍:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
callback | function | 是 | 事件回调函数 |
回调函数接收参数为json
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
visitorId | String | 是 | 被更新客户信息的访客ID |
name | String | 否 | 访客姓名 |
nickName | String | 否 | 访客昵称 |
gender | int | 否 | 性别,0-未知, 1-男, 2-女 |
age | int | 否 | 年龄 |
phone | String | 否 | 电话号码 |
String | 否 | qq号码 | |
long | 否 | 微信号 | |
String | 否 | 邮件地址 | |
memo | long | 否 | 备注 |