🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@live800/livechat-sdk

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@live800/livechat-sdk

designed for customizing the live800 web-sdk

latest
npmnpm
Version
1.1.15
Version published
Weekly downloads
6
-25%
Maintainers
1
Weekly downloads
 
Created
Source

JS-SDK 开发文档(API)

[TOC]

前言

目前LIVE800访客端提供的功能,基本能满足大部分企业的要求,但随着时间推移,标准的配置,千篇一律的风格,以及固有的信息展示方式,已经不能满足一部分企业的高要求。访客端虽是一个小窗口,但也是企业与客户建立交流,展示企业形象的平台。

以往,定制访客端,大部分是定制访客端界面风格,我们提供的功能基本能满足企业的业务要求。除了定制窗口风格外,额外定制窗口中展示的业务板块信息也较多,且这些信息是我们标准系统无法通过现有配置来完成。在定制这方面,我们不仅要了解客户业务需求,还可能与客户进行数据接口对接,需求开发过程中,还不定时与客户进行需求沟通,联调,耗时耗力,后期维护成本也高。

基于以上痛点,我们提供一套JS-SDK的解决方案,来解决以上提到的痛点。对于客户来说,首先有一定的开发能力,开发过程中,只需关注自身需求,实现自己的核心业务。而Live800则发挥传统的优势,提供稳定高效的对话机制,提供核心接口。

开始

时序图

图片 1

当前JS-SDK支持直接加载、AMD、CMD、React、Vue开发模式,下面我们将以网页直接引入方式进行阐述

前端准备

步骤1

在使用SDK前,需要在Live800后台渠道管理-Web-SDK接入中,添加Web-SDK配置,如下图: -图-1

图-1

首先,点击上图左侧添加Web-SDK按钮,新增一个配置,上图中,我们已经新增了一个名字为test_name的SDK,在配置相关信息后,会得到AppKey、AppSecret、companyID、configID,先获取到这些信息后,后面会介绍如何使用。

其次我们还要配置授权服务器域名,此处配置的是访客端的域名,因为JSSDK的前端接口请求,会与当前客户的访客端域名存在跨域限制。故需要在此配置中对访客端域名做请求授信处理。如:http://xxx.xxxx.com:8080 ,若存在端口号,也需要将端口加上。互通状态是对当前配置进行一个开关处理。关闭后,此配置的JSSDK将无法进行正常对话。接入规则是对当前configID绑定一个接入规则,可绑定对话组、客服、或路由策略。

在这一切都准备就绪的情况下,我们就可以开始使用Live800提供的SDK,开发个性化的访客端了。

步骤2

假设,你已经做好了访客端的对话页面,现在您需要将SDK脚本引入到页面中,脚本地址:

<script type="application/javascript" src="http://multinew.dev.live800.com/live800
/chatClient/refactor/v6.0.1/src/js/livechat-1.1.0.js" defer ></script>

除了直接引用我们服务器的脚本资源,你也可将脚本资源下载下来,放在自己的服务器上访问也是可以的。除了这种外联方式,如果是使用一些框架,比如VUE或React,可将JS放在项目中,在需要的地方直接引用即可。

步骤3

在页面SDK脚本加载完成,并准备就绪后,首先需要配置对话信息,liveChat.ready方法需传递一个配置信息参数,如下所示:

window.LiveChat = live800.LiveChat;
window.liveChat = live800.liveChat;
window.UploadFile = live800.UploadFile;
window.saveHistory = live800.SaveHistory;
liveChat.ready({
    appKey       : 'QDdi34K7dxty',
    nonce        : 'AIz1DJg',
    sig          : '6f5a405ab905ffc48da4d80be9b9b1a94793f55580f3badb8de1b017b83',
    timestamp    : '1586483417360',
    companyID    : '10000',
    visitorId    : '123456789',
    protocol     : 'http',
    appName      : 'live800',
    cmdDomain    : '192.168.0.109',
    port         : '',
    definedParams: '',
    isMobile     : true
}).then((data)=>{
    console.log(data);
    if (data.code !== 200) {
        console.warn('配置信息获取失败!');
        return;
    }
    //初始化上传文件
    new UploadFile('upfileContent', '*', function (data) {
        console.warn(data);
    }, function (data) {
        console.error(data)
    });
    //data 为后台配置的信息
    liveChat.notify((data)=>{
        console.log(data);
    });
    liveChat.start(
        // 机器人对话记录
        robotMsgContent: [
        {
            "ask": "[机器人欢迎语]",
            "answer": {
                "type": "text",
                "content": "<div class=\"live800_rtf\"><p>!@#¥%……&*(!@#$%^&*(
                </p></div>"},
            "tm": 1562297364389
        },
        {
            "ask": "如何在APP申请额度?",
            "answer": {
                "type": "text",
                "content": "<p class='robotinfo'>您好,您可以下载“中原消费金融”APP
                -注册-实名认证-首页-开通柚卡进行操作。</p>"
            },
            "tm": 1562297751698
        }]
    );
    
    // 发送消息
    // liveChat.sendText('211221');
    
    // 结束对话
    // liveChat.endChat();
    
    /** 发送文件 
    *liveChat.sendFile({
        "fileId"  : "20200309121212",// 每个消息的ID,以前的chatMsgId
        "fileName": "2020_03_09_12_10_56_14_30080.JPEG",// 每个消息的ID,
        以前的chatMsgId
        "fileSize": "25190",// 每个消息的ID,以前的chatMsgId
        "fileUrl" : "http://192.168.0.109:8180/live800/downloadserver?companyID=
        10000&fid=158372705635610000a20s17d1583727056356&act=1&fna=2020_03_09_12
        _10_56_14_30080.JPEG&sign=3uYX9vptHvg42UA/IENsOvZ7yaigzNKCNTM+2MoJp7QnYg
        M8HgIpC7tkl1zOF29e4mzkTk3JGLYtHbhOEf8K+f2JAY0/cT3vTA9FEuE+veIT6Hgv8X37xF
        xEIPdU8Jma&urlFrom=fromVisitor",// 每个消息的ID,以前的chatMsgId
        "thumbUrl": "http://192.168.0.109:8180/live800/downloadserver?companyID=
        10000&fid=thumb_158372705635610000a20s17d1583727056356&act=1&fna=thumb_2
        020_03_09_12_10_56_14_30080.JPEG&sign=zh4RjXloTVVjMfrXrR1rdwfT4FSYC9nVkH
        nuPgwrr5H9VBhPg2S1BUdL4yswiatmTY0ID/WF3iuy0m3MBlz1HQWjo9+lMnD/f82N0zdrA4
        h08g/zRVsk4NOSxiAL6RUC&urlFrom=fromVisitor",// 每个消息的ID,以前的chatMsgId
        "width"   : 386,// 每个消息的ID,以前的chatMsgId
        "height"  : 454 // 每个消息的ID,以前的chatMsgId
    })*/
    
    ......
    
}).catch((data)=>{
    //data 错误信息
});

详细配置字段含义,此处不做详细阐述,我们将在下面接口函数章节中阐述。将上面一些信息配置好后,可在Promise的then和catch函数中接收到一个data,then函数返回的data中包含后台配置的所有数据,而catch接收到的是错误信息。通过以上几个步骤基本简单说明了如何使用该JS-SDK。

服务端准备

签名(sig)准备

此处主要讲liveChat.ready()的配置信息中,签名sig的生成规则,该签名出于安全考虑最好在服务器端实现签名逻辑,再将签名的内容告知前端。 签名生成规则如下: 参与签名的字段包括appKey(Live800后台生成的appKey), appSecret(Live800后台生成的appSecret), timestamp(时间戳), nonce(随机字符串)。对所有待签名字段值按前面列举的顺序拼接成字符串,暂定为string1。然后对string1做sha256签名,所有字段值都使用原始值,不进行其他任何方式编码或转义,即:signature=sha256(string1)。

示例:

appKey=live800_aitcnAlY7sov
appSecret=GyJBq9kWT5msaH9
timestamp=1586483417360
nonce=17vu2h

步骤1. 对所有待签名参数值按照按顺序拼接成字符串string1:

live800_aitcnAlY7sovGyJBq9kWT5msaH9158648341736017vu2h

步骤2. 对string1进行sha256签名,得到sig:

fafcebc14e318ac31ac99fa24fca2fef409fe0f6e3c64d0f80b1e489a13fa456

注意事项

1、签名用的nonce和timestamp必须与liveChat.ready中传递配置的nonce和timestamp相同。

2、出于安全考虑,开发者最好在服务器端实现签名的逻辑

JS接口函数

SDK准备

liveChat.ready(params:JSON): Promise<JSON>

该函数,支持传递一个JSON,主要设置一些配置信息,在上面开始章节中,我们已列举了该方法的使用方式,此处不做详细说明,下面将列出所有配置字段:

字段名类型是否必须说明
appKeyString通过后台渠道管理-Web-SDK接入中获得
companyIDNumber通过后台渠道管理-Web-SDK接入中获得
nonceString随机数
sigString签名(如何获得签名
timestampNumber时间戳
visitorIdString访客唯一标识,用于区分不同访客(特别说明
protocolString获取配置信息地址的协议(可查看图-2)
portNumber获取配置信息地址的端口(可查看图-2)
appNameString获取配置信息地址的应用名(可查看图-2)
cmdDomainString获取配置信息地址的域名(可查看图-2)
isMobileString是否是手机端访问。如果是则需带此参数,同时会下发手机相关的配置信息,如果不是则传0。1 - 是手机 0 - 是pc
definedParamsString或JSON自定义参数,可添加实现路由功能的参数(路由配置)配置,也可在对话地址后面加参数。数据格式:
{skillId:121212, groupId:123131,...} 或者 skillId=121212&groupId=123131
langString设置窗口提示语语言,默认值:zh,可选值:zh-TW(繁体)、en(英语)、ru(俄语)、es(西班牙语)、de(德语)、vi(越南语)、th(泰语)
maxSendSizeNumber发送文本消息的最大字数限制,默认最多500字

-图-2

图-2

在配置信息设置好后,该函数返回一个Promise对象,可在该对象的then函数中调用启动对话接口函数,以及注册接收消息函数。该then函数返回一个data,可通过该data中的code判断是否准备好,当code为200时表示准备好了,可继续后面操作。除此以外,其他code值都是异常情况,如code=500。需要注意,所有后续的接口使用,都必须在此函数成功返回200后再执行。如果出现特别异常情况,可在catch函数返回的data查看具体原因。在then的返回data中,除了可判断是否准备好,data.config中还有在MG后台配置的数据信息返回。具体数据信息如下表:

config中的字段说明(下表中的字段按首字母排序):

字段名类型说明配置模块
autoTipConfigJSON访客无应答提示的配置信息系统设置-对话设置-对话提示
busyWaitTimeNumber排队留言提示时间系统设置-对话设置-对话提示
captureBoolean截屏是否开启系统设置-窗口界面
chatRecordBoolean保存对话记录是否开启系统设置-窗口界面
chatstatusString若开启了发一句话接通对话,此值为:DELAY,处理方式请参考启动对话,除此以外都是空值系统设置-对话设置-对话提示
chatLogoUrlStringlogo地址系统设置-窗口界面
chatLogoLinkStringlogo点击跳转地址系统设置-窗口界面
customBubbleColorString客服气泡颜色系统设置-窗口界面
delayTipString开通访客发送一条消息后请求对话功能,默认提示语,使用时需URL解码。如何判断是否开了此功能,还需通过chatstatus=“DELAY”判断系统设置-对话设置-对话提示
emoticonsBoolean表情图标是否开启系统设置-窗口界面
enableHeadPhotoBoolean是否开启显示头像
true:开启
false:关闭
系统设置-窗口界面
enableMobileExpandWindowBoolean是否启用移动扩展窗口系统设置-窗口界面
enableVoiceBoolean声音是否开启系统设置-窗口界面
endChatUrlString移动端对话结束跳转地址系统设置-窗口界面
exitSurveyBoolean对话结束是否弹出满意度
true:是
false:否
系统设置-对话设置-满意度
fontSizeBoolean字体大小是否开启系统设置-窗口界面
forbidWordJSON访客敏感词限制系统设置-对话设置-对话提示
frequencyJSON刷屏配置,访客发送消息过于频繁系统设置-对话设置-对话提示
hasHistoryBoolean是否存在历史记录系统默认
hasLeaveMsgReplyBoolean是否有新的留言回复信息系统默认
hasOfflineMsgBoolean是否有新的离线消息系统默认
humanAfterRobotEnableBoolean机器人时,是否可以请求人工系统设置-对话设置-对话服务
isQuestionEnableBoolean是否开启问题类型系统设置-客户信息设置
isChatExitBoolean当前访客对话是否还存在,对话未结束系统默认
isShowSurveyBoolean是否开启对话中系统自动推送满意度评价窗口系统设置-对话设置-满意度
italkingString宣传文字系统设置-窗口界面
jumpToRobotEnableBoolean是否可跳转机器人系统设置-对话设置-对话服务
languageNumber国际化语言
0:中文简体
1:中文繁体
2:英语
系统默认
leavewordEnableBoolean是否开启留言功能系统设置-留言设置-全局设置
mobileNavConfigArray手机扩展窗口,参考数据如下:
[{
"label":"",//窗口名称
"url":"",//链接地址
"showType":200,//显示方式 0-图片1-超链接
"picUrl":""//图片地址
}]
系统设置-窗口界面
mobileToolbarExistBoolean手机工具栏是否存在
false:不存在
true:存在
系统设置-窗口界面
needVisitorInfoCollectBoolean是否开启访客信息收集或问题类型选择系统设置-客户信息设置-信息收集
notTurnCustomerJSON是否开启高排队配置信息系统设置-客户信息设置-对话提示
notBreakDialogueBoolean是否开启了会话保持系统默认
onlineLeavewordBoolean在线留言按钮是否开启系统设置-窗口界面
onlineStatusString客服在线状态
0:离线或离开
1:在线
2:忙碌
系统默认
openHumanServiceBoolean是否开启人工服务,登录或未登录是否可用人工系统设置-对话设置-对话服务
operatorBusyActionBoolean客服忙,是否允许请求人工系统设置-对话设置-对话服务
operatorHeadString客服头像系统设置-窗口界面
operatorOffLineActionBoolean客服不在线,是否允许留言系统设置-对话设置-对话服务
operatorOfflineWordString客服不在线提示语系统设置-对话设置-对话服务
qrcodeOpenBoolean二维码是否开启系统设置-窗口界面
queueAmountTimesNumber后台配置的排队人数阈值,用于判断是否要继续请求人工系统默认-对话设置-对话提示
questionParamsString本通对话选择的问题类型参数,在开启会话保持,刷新页面后才会有此值系统默认
robotHeadString机器人头像系统设置-窗口界面
robotServiceBoolean是否开启机器人服务系统设置-对话设置-对话服务
robotWelcomeWordString机器人欢迎语系统设置-对话设置-对话提示
robotToCustomerBoolean是否开启机器人转人工排队提示系统默认
sendFileBoolean传送文件是否开启系统设置-窗口界面
sendPictureBoolean发送图片是否开启系统设置-窗口界面
serviceTypeNumber服务类型,
0:不提供服务
1:机器人服务
2:人工服务
系统默认
showOperatorInfoBoolean是否显示客服信息
true:显示
false:不显示
系统默认
surveyTypeNumber满意度评价类型: 0:自带 1:第三方系统设置-对话设置-满意度
showSurveyChaterTimesNumber访客发送几条消息后弹出满意度系统设置-对话设置-满意度
showSurveyOperatorTimesNumber客服发送几条消息后弹出满意度系统设置-对话设置-满意度
staffServiceBoolean是否可以转人工系统设置-对话设置-对话服务
timeOffWorkWordString非工作时间提示语系统设置-对话设置-对话提示
visitorBubbleColorString访客气泡颜色系统设置-窗口界面
visitorHeadString访客头像系统设置-窗口界面
wideColorString窗口颜色系统设置-窗口界面

消息通知

liveChat.notify(callBack:Function)

消息通知函数,该函数支持传递一个回调函数,以便用来接收消息。回调函数接收一个参数,从启动对话开始,该参数将接收SDK下发的所有消息,其中包含一些本地消息(非服务器下发的消息)。详细的消息内容,将在下一个 消息号 章节进行一一阐述。

示例:

liveChat.notify((data)=>{
    //data 为接收到服务器的消息数据,可打印出来看看。
    console.log(data);
})

启动对话

liveChat.start(params?:any): Promise<JSON>

在注册的ready函数的Promise的then函数中执行此函数后,将与Live800对话服务器建立对话。在启动对话前,先注册消息通知函数,以便接收对话建立后的消息。需要注意的是,在启动对话过程中,因客服不在线、访问过于频繁等原因,导致对话未建立成功。都将通过消息通知函数通知给使用者。该接口支持传递一个参数,在接入人工时,可将机器人消息记录带给客服。注意:在对话前,进行访客信息收集勾选的问题类型绑定客服或分组,需通过此接口传递skillId(分组ID)或operatorId(客服ID)才能接入到指定的客服或分组。

示例:

//数据格式:
liveChat.start({
subject: '', // 问题类型
operatorId: '', // 问题类型绑定的客服ID
skillId: '', // 问题类型绑定的分组ID
delayMsg: {
    "msgType": 'text',
    "msg": {
        "chatMsgId": data.data.visitorId + '_' + (new Date().getTime()) + '_' 
        + (Math.random() + '').substring(2, 5),
        "content": "你好"
    }
}, // 发一句话接通对话
robotMsgContent:[
    {
        "ask":"[机器人欢迎语]",
        "answer":{
            "type":"text",
            "content":"<div class=\"live800_rtf\"><p>!@#¥%……&*(!@#$%^&*(
            </p></div>"
        },
        "tm":1562297364389
    },
    {
        "ask":"如何在APP申请额度?",
        "answer":{
            "type":"text",
            "content":"<p class='robotinfo'>您好,您可以下载“中原消费金融”APP-注册
            -实名认证-首页-开通柚卡进行操作。</p>"
        },
        "tm":1562297751698
    }
]}).then((data)=>{
    /*成功示例
     {
        "status":"offline",
        "inServiceTime":false,
        "words":""
    }
     */
}).catch((data)=>{
    /*失败示例
     {
        "code":500,
        "msg":" create chatter error ",
        "successful":false
     }
     */
})

字段说明

字段类型是否必要字段说明
subjectString所选的问题类型的显示名称
operatorIdString客服ID,该ID是在对话前,进行访客信息收集时,选择的问题类型绑定的客服ID值。
skillIdString分组ID,该ID是在对话前,进行访客信息收集时,选择的问题类型绑定的分组ID值。
delayMsgJSON发一句话接通对话的参数,
参考:{chatMsgId:本条消息的ID, content: "文本"}
robotMsgContentJSON机器人对话记录,机器人转人工时,可将机器人对话记录带给客服查看,相关字段说明如下表。需注意:若要将机器人记录带给客服,一定要在后台MG开启机器人服务才有效。

delayMsg字段说明:

字段类型是否必要字段说明
msgTypeString发送消息类型,text:文本 file:文件
msgJSON发送消息体

msg字段说明:

文本消息如:
{
    'chatMsgId': data.data.visitorId + '_' + (new Date().getTime()) + '_' 
    + (Math.random() + '').substring(2, 5),
    'content': "你好"
}
文件消息如:下面字段可通过传送文件返回
{
    'chatMsgId': (new Date().getTime()) + '_' + (Math.random() + 
    '').substring(2, 5),// 每个消息的ID,以前的chatMsgId
    'fileId': tempData.fileId, // 文件ID
    'fileName': tempData.fileName,//  文件名称
    'fileSize': tempData.fileSize,//  文件大小
    'fileUrl': tempData.fileUrl,// 文件地址
    'thumbUrl': tempData.thumbUrl,//  缩略图地址
    'width': tempData.width,//  图片宽度
    'height': tempData.height //  图片高度
}

robotMsgContent字段说明:

字段名类型是否必要说明
askString机器人问
answerJSON机器人答案
type:”text“ 答案类型,目前只支持text类型
content: 答案内容

在start方法的then函数中会返回因特殊原因不能接入人工的情况,可通过这些返回值判断后续业务流程。

字段类型说明
statusStringprohibit: 被IP阻止 / 频繁请求 / 高排队不允许转人工 / 被加为黑名单
restrict: 访问限制
offline: 客服不在线
inServiceTimeBoolean是否在服务时间(只有客服不在线或隐身时才会下发此字段)
wordsString不能接人工的提示语

特别注意:建议对ask和content字段做URL编码,防止因特殊字符导致出现异常。

发送消息

liveChat.sendText(params:JSON): Promise<JSON>

该方法支持发送文本内容,而文本内容中,支持部分HTMl标签,其中包括**<img /><br /><a />**,除此以外的HTML标签都将被移除,此目的主要是防止XSS漏洞攻击。同时,我们建议用户在使用过程,对访客输入的特殊符号做转义,至少对一些特殊字符需做强制转义,如 ' " < > . / \。当然,我们建议对所有特殊符号都进行转义后再发送,避免因这些特殊符号导致数据显示异常等情况。

示例:

// 发送消息
liveChat.sendText({
    chatMsgId: 访客ID + '_' + (new Date().getTime()) + '_' + (Math.random() + '')
    .substring(2, 5),
    content: '发送文本内容'
}).then((data)=>{
    console.log(data);
    /* 消息发送成功,参考返回值
     {
        "code":200,
        "data":{},
        "msg":"success",
        "successful":true
    }
    */
}).catch((data)=>{
    console.log(data);
    /* 消息发送失败,参考返回值
     {
        "code":500,
        "msg":" msgType is null",
        "successful":false
    }
    */
});

字段说明:

字段名类型是否必要说明
chatMsgIdString消息ID,暂时未使用,保留字段
contentString发送消息内容

发送实时消息

liveChat.sendInstantText(textContent:String): Promise<JSON>

但客服开启实时查看功能时,使用者可调用此方法,将访客在输入框输入的内容通过此函数发给客服。该函数支持一个参数,即,访客在输入框实时输入的内容。如同发送消息函数,访客输入的内容会被过滤,包括img和br标签,只支持文本内容。

示例:

liveChat.sendInstantText("访客输入的内容").then((data)=>{
/*成功示例
{
    "code":200,
    "data":{},
    "msg":"success",
    "successful":true
}
*/
console.log(data);
}).catch((data)=>{
/*失败示例
{
    "code":"1",
    "msg":"chatter is null ",
    "successful":false
}
*/
console.log(data);
})

发送文件

方式一

liveChat.sendFile(params:JSON): Promise<JSON>

使用该方法,可向客服发送文件,该函数支持传递一个JSON类型的参数,但不建议优先使用此方式,原因是此类发送文件方式,Live800未验证发送文件的类型,如果使用者对访客发送文件类型控制不好,可能会出现安全问题。比如,发送如exe之类的危险程序给客服,所以使用者在使用此方式前,一定要控制好访客发送文件的安全性检测。使用方式如下:

示例:

liveChat.sendFile({
    "chatMsgId":  访客ID + '_' + (new Date().getTime()) + '_' + 
    (Math.random() + '').substring(2, 5),// 发送消息的ID
    "fileId"   : "20200309121212",// 文件消息的ID,
    "fileName" : "2020_03_09_12_10_56_14_30080.JPEG",// 文件名
    "fileSize" : 25190,// 文件大小
    "fileUrl"  : "",// 文件地址
    "thumbUrl" : "",// 缩略图地址
    "width"    : 386,// 图片实际宽度
    "height"   : 454 // 图片实际高度
}).then((data)=>{
    console.log(data);
    /* 文件消息发送成功,参考返回值
     {
        "code":200,
        "data":{},
        "msg":"success",
        "successful":true
    }
    */
}).catch((data)=>{
    console.log(data);
    /* 文件发送失败,参考返回值
     {
        "code":500,
        "msg":" msgType is null",
        "successful":false
    }
    */
})

字段说明:

字段名类型是否必填说明
chatMsgIdString发送消息的ID(或需保证唯一性)若消息发送失败,则可根据Promise的catch返回失败消息ID,进行失败标注。
fileIdString文件ID,确保唯一性
fileNameString文件名
fileSizeNumber文件大小,单位字节
fileUrlString文件地址
voiceTimeNumber为mp3时,音频时长
thumbUrlString为图片时,可提供缩略图地址
widthNumber为图片时,图片的实际宽度
heightNumber为图片时,图片的实际高度

目前接收的合法文件包括jpg、jpeg、png、gif、bmp、wbmp、ppt、pptx、doc、docx、txt、mp3、mp4、xlsx、xls、zip、rar、7z、pdf等常见不可执行的文件。

方式二(不适合小程序中使用)

除了上面这种发送文件方式,我们为使用者封装好一个上传文件的组件,当用户初始化该组件后,会在用户的设置的宿主对象中初始化一个文件选择器<input type="file">,用户只需修改文件选择器样式,而用户选择文件的后续操作将由组件完成,我们提供的组件会对图片进行合理压缩,以及非法文件类型判断,同时对组件稳定性和兼容性做了大量工作。请查看下面组件-文件上传

结束对话

liveChat.endChat(params:JSON, callBack:Function)

主动结束对话的方法,该函数提供两个参数,params 自定义参数,callBack 回调函数。

参数名类型是否必要说明
paramsJSON如:{chatToLeaveword: '1' //是否是转到留言丢失 1-是}
callBackFunction结束对话后,会回调此函数,通知对话已结束,可做后续事情

重启消息检测

liveChat.reStart204(origin:String)

当消息检测终止,或因其他原因导致消息检测超时或终止的情况,可调用此方法,重启消息检测,维护消息检测不中断,以及防止掉消息。JSSDK内部有一套机制防止此类情况发生。但不排除用户在使用过程中,出现各种未知情况,在不刷新窗口的情况下,我们可通过调用此函数,尝试再次接通对话。

注意:当对话状态为 ENDWAIT 时,调用此函数无用。该函数只针对对话过程中出现的消息检测异常终止时有效。查看当前对话状态,可通过LiveChat.chatStatus获得。

自定义提示语

liveChat.setCustomPrompt(params:JSON)

一般情况下,除了在Live800系统后台配置提示语,以及服务端默认写死的提示语(一般很少)。还有部分是写死在前端SDK中的,为方便在使用过程中,因业务场景,需要定制个性化的提升语,因此我们提供了此方法,方便使用者定制提示语。

使用上很简单,该方法支持传递一个JSON数据,只需按照下表中的字段名,重新配置提示语即可。

示例:

liveChat.setCustomPrompt({
    sendFailedTip: '消息发送失败了,可截图发给客服哟!', //自定义提示语
    ......
})

下面列举了所有写死的提示语供大家参考:

字段名默认提示语使用场景
sendFailedTip消息发送失败多次尝试发送消息都失败会提示
sendFileTypeError发送文件类型错误发送文件类型错误
overtime超时请求当检测消息超时多次会提示
pleaseWait请等待客服人员应答当对话状态为REQUEST时,发送消息会提示
maxSendWordsTip最多能发送{0}字发文文本消息内容过多时
requestError请求中断出现接口请求异常时
endChat对话已是结束状态当对话已是结束状态,再调用endChat接口,会提示该语句
contentEmpty发送内容不能为空发送空消息时,包括空格在内

注意:此接口的使用,一定是要放在启动对话前,若在后面再设置,以免部分提示不生效。

获取历史记录接口

liveChat.getHistory(params: any): Promise<Object>

可通过liveChat.ready方法下发config信息中的hasHistory字段来判断该访客是否存在历史记录,如果存在历史记录则是true,通过该接口可拉取记录记录,否则为false。该方法支持一个参数:

参数类型是否必要说明
typeString拉取历史记录条数,1:每次50条 其他:每次20条,默认值:1

示例:

liveChat.getHistory({
    "type":"1" //每次拉取50条
}).then((data)=>{
    //拉取历史记录成功
   {
    "code":200,
    "data":{
        "historyList":[
            {
                "chatMsgId":"M_zycfc_16_20210107142743_001",
                "dateTime":"2021-01-07 14:27:44",
                "hasRevoke":false,
                "itemId":5,
                "msgType":"text",
                "name":"gongdixin",
                "opHeadImg":"http://172.18.21.172:8180/live800/chatClient/images/operator.png",
                "personType":"operator",
                "text":"你好啊",
                "tm":1610000864007
            },
            ......
         ]
    },
    "msg":"success"
   }
}).catch((data)=>{
    /*拉取历史记录失败
    {
        "code":"20000",
        "msg":"some param is null ",
        "successful":false
    }
    */
})

historyList字段说明

字段类型说明
itemIdNumber消息顺序id
chatMsgIdString消息id
dateTimeString消息时间
msgTypeString消息类型
text:文本
file:文件
image:图片
voice:语音
video:视频
link:链接
以下字段根据不同系统版本下发
news:图文
location:地理位置
nameString消息发送人名称
opHeadImgString客服头像
personTypeStringoperator-客服 visitor-访客
tmNumber消息时间戳
hasRevokeBoolean消息是否已撤回
revokeNameString撤回客服名称(hasRevoke为true时下发)
revokeTimeString撤回时间(hasRevoke为true时下发)

以下是不同消息类型下发的额外字段说明

text 类型

字段类型说明
textString文本消息内容

file 类型

字段类型说明
fileSizeNumber文件大小
fileUrlString文件地址
fileNameString文件名

image/location 类型

字段类型说明
imgUrlString图片地址

link 类型

字段类型说明
linkUrlString链接地址
titleString链接标题

news 类型

字段类型说明
imgTextNumString图文个数
imgTextsArray(JSON)imageUrl:图片地址
clickUrl:点击地址
title:标题描述

video 类型

字段类型说明
videoUrlString视频地址
thumbImgUrlString缩略图地址

voice 类型

字段类型说明
voiceUrlString语音地址
durationString语音时间
recognitionString语音识别文字

获取访客信息收集项数据接口

liveChat.getVisitorInfo(): Promise<Object>

此接口用于获取后台配置的访客信息收集项数据,在对话前可弹出信息收集,收集用户信息后再接入对话。在对话过程中,也可推送访客信息收集。需注意,在提交访客信息之后的流程会有些区别,对话前,在访客信息收集面板中,除了会有收集项,还会有问题类型选项,用户在填写好信息,选择好问题类型后,将收集项(不包括问题类型数据)通过提交访客信息收集接口提交成功后,还需要将问题类型绑定的分组ID或客服ID,通过调用启动对话接口接通对话,使用方式可查看启动对话接口描述。而对话中客服推送的访客信息,仅仅是将收集到数据通过数据提交接口提交给服务器即可。

示例:

liveChat.getVisitorInfo().then((data)=>{
/* 成功获取配置信息,data参考返回值
    {
        "code":"0",
        "data":[
            {
                "welcome":"提示语",
                "collectList":[
                    {
                        "fieldCode":"name",
                        "name":"姓 名",
                        "req":"1",
                        "sort":0
                    },
                    {
                        "fieldCode":"gender",
                        "name":"性 别",
                        "req":"0",
                        "sort":3
                    }
                ],
                "questionList":[
                    {
                        "bindType":"1",
                        "routingType":"0",
                        "showName":"综合业务办理",
                        "sort":"1"
                    },
                    {
                        "bindType":"0",
                        "routingType":"0",
                        "showName":"hxtest",
                        "skillId":"2",
                        "sort":"2"
                    },
                    {
                        "bindType":"2",
                        "routingType":"0",
                        "showName":"的反思",
                        "operatorId":"12",
                        "sort":"3"
                    }
                ],
                "collectEnable": true,
                "disClaimerEnable": true,
                "disClaimerContent": "隐私声明内容"
            }
        ],
        "msg":"success",
        "successful":true
    }
 */
}).catch((data)=>{
/*获取失败,data参考返回值
 {
    "code":500,
    "msg":" lastMsgTime is null",
    "successful":false
 }
 */
})

访客信息收集项说明

字段类型说明
welcomeString提示语
collectEnableBoolean是否开启访客信息收集
disClaimerEnableBoolean是否开启隐私声明
disClaimerContentString隐私声明内容
collectListArray访客信息收集项
questionListArray问题类型项

访客信息收集项字段说明 collectList:访客信息收集项

字段名类型说明
fieldCodeString对应收集信息标识
nameString收集项名称
reqBoolean是否必填
sortNumber排序值

问题类型字段说明 questionList:问题列表

字段名类型说明
showNameString问题名称(接入对话时通过subject传递该值)
bindTypeString绑定类型 0-分组 1-所有客服 2-客服
routingTypeString路由标识 0 表示普通配置,1表示路由配置
skillIdString分组id
operatorIdString客服id
sortNumber排序值

提交访客信息收集接口

liveChat.submitVisitorInfo(data:Object, cancel?:String): Promise<Object>

提交访客信息收集,该方法支持2个参数,第一个参数是提交访客信息收集数据,第二个参数在客服推送访客信息收集时,访客拒绝填写信息时,可通过该参数告知客服访客拒绝填写信息,值固定为:cancel,注意,问题类型字段只在对话前的访客信息展示,对话中客服推送的访客信息收集不展示。在对话前的问题类型字段是在提交访客信息收集成功后,调用启动对话时再传递问题类型的参数,参数说明可查看启动对话中的说明。如下:

示例:

liveChat.submitVisitorInfo({
    "popWindowId": "", // 访客信息窗口的ID,用户自己生成的,在提交访客信息收集后,
    该ID会通过7521下发给访客,开发者可通过该ID隐藏之前的信息收集窗口。
    "visitorInfo":{ // 访客信息
        "itemList":[
            {
                "name":"name",
                "value":"liulin"
            },
            {
                "name":"nickName",
                "value":"张三"
            }
        ]
    }
}, "cancel").then((data)=>{
/* 成功示例
 {
   "code":200,
   "data":{},
   "msg":"success",
   "successful":true
 }
*/
}).catch((data)=>{
/* 失败示例
 {
   "code":500,
   "msg":" ",
   "successful":false
 }
 */
})

提交字段说明

字段类型是否必传说明
popWindowIdString开发者自己生成的访客信息收集窗口的ID。在提交访客信息收集后,该ID会通过7521下发给访客端,开发者可通过该ID隐藏之前的信息收集窗口。
visitorInfoJSON访客信息,若是拒绝信息收集,此字段非必填
   |-itemListArray访客信息字段列表
      |-nameString字段名,获取访客信息收集接口中返回数据中的fieldCode对应值,可参考上面示例
      |-valueString字段值,可参考上面示例

获取满意度评价项数据接口

liveChat.getSurveyData(): Promise<Object>

获取满意度评价项的数据,在对话过程中,客服给访客推送满意度调查表时,可通过该接口获取评价项。若在后台配置使用第三方满意度调查URL,可通过上面config字段表中的surveyType判断使用方式,使用者则可根据此判断使用自带的还是自己的满意度调查表。

示例1:

liveChat.getSurveyData().then((data)=>{
/*成功示例
 {
    "code":0,
    "data":{
        "guideWord":"为了使我们更好的为您服务,请您进行评价。",
        "serviceInfos":[
            {
                "service":"非常满意",
                "type":"1",
                "value":"1"
            },
            {
                "service":"满意",
                "type":"1",
                "value":"2"
            },
            {
                "service":"一般",
                "type":"2",
                "value":"3"
            },
            {
                "badSurvey":{
                    "badService":[
                        "对服务不满意",
                        "对客服不满意"
                    ],
                    "badSurveyShow":{
                        "checked":"1"
                    },
                    "guideWord":"为了使我们更好的为您服务,请您进行评价。",
                    "multiCheck":{
                        "checked":"1"
                    }
                },
                "service":"不满意",
                "type":"3",
                "value":"4"
            },
            {
                "service":"不满意-对业务规定",
                "type":"3",
                "value":"5"
            }
        ]
    },
    "msg":"success",
    "successful":true
 }
 */
}).catch((data)=>{
/*失败示例
 {
    "code":500,
    "msg":" ",
    "successful":false
 }
 */
})

字段说明

字段类型说明
guideWordString满意度指标
serviceInfosArray满意度指标
   |-serviceString满意度指标
   |-typeString满意度类型:
1: 满意 2: 一般 3: 不满意
   |-valueString满意度指标值(即提交满意度评价接口参数:services)
   |-badSurveyJSON不满意原因
      |-badServiceArray不满意选项值集合
      |-badSurveyShowJSON是否显示不满意选项
checked:是否选择 1-是 0-否
      |-guideWordString不满意评价引导语
      |-multiCheckJSON是否支持多选
checked:是否选择 1-是 0-否

提交满意度评价接口

liveChat.submitSurveyData(data:Object, cancel?:String): Promise<Object>

提交满意度信息,该方法支持2个参数,第一个参数是提交满意度数据,第二个参数在客服推送满意度调查表时,访客拒绝满意度评价时,可通过该参数告知客服,访客拒绝评价满意度,值固定为:cancel

示例:

liveChat.submitSurveyData({
    "services":"此值为获取满意度接口中,某项评价对应的value值",
    "comment":"评价内容",
    "inviteEvaId":"邀请ID",
    "impress":"不满意的原因",
    "popWindowId":"10"
},"cancel").then((data)=>{
/*成功示例
{
  "code":200,
  "data":{},
  "msg":"success",
  "successful":true
}
 */
}).catch((data)=>{
/*失败示例
 {
   "code":500,
   "msg":" ",
   "successful":false
 }
 */
})

字段说明

字段类型是否必传说明
servicesString此值为获取满意度接口中,某项评价对应的value值
commentString访客评价信息
inviteEvaIdString邀请评价id,该值通过712推送满意度调查表时下发的
impressString不满意二级评价内容,不满意原因,值传递方式:将不满意原因通过#号拼接后,再进行URL编码传递
popWindowIdString开发者自己生成的满意度评价窗口的ID。在提交满意度后,该ID会通过7521下发给访客端,开发者可通过该ID隐藏之前的满意度评价窗口。

获取表情数据接口

liveChat.getEmotionsData(): Promise<Object>

获取表情数据,包括默认表情和自定义表情。

示例:

liveChat.getEmotionsData().then((data)=>{
/*成功示例
 {
    "code":200,
    "data":{
        "default":[
           {
               "name":"like",
               "smallUrl":"http://165.dev.live800.com:8080/live800/chatClient/
               emotion/images/like_s.gif",
               "normalUrl":"http://165.dev.live800.com:8080/live800/chatClient/
               emotion/images/like.gif"
           }
       ],
       "define":[
           {
               "name":"7517e066-ba03-49c5-934",
               "normalUrl":"http://165.dev.live800.com:8080/live800/downloadserver
               ?fid=%2FchatClient%2Femotion%2Fdefine%2F9085%2F1607335911192%2F
               &act=2&isAbleZip=0&fna=16073359111921.png&a=1"
           }
       ]
   },
   "msg":"success",
   "successful":true
 }
 */
}).catch((data)=>{
/*失败示例
{
   "code":500,
   "msg":"some params is null ",
   "successful":false
}
*/
})

字段说明

字段类型说明
defaultArray(JSON)默认表情
defineArray(JSON)自定义表情
   |-nameString表情名称
   |-normalUrlString为普通表情地址
   |-smallUrlString为小表情地址,自定义表情没有smallUrl

获取留言项数据接口

liveChat.getLeaveMsgData(): Promise<Object>

获取留言项数据。

示例:

liveChat.getLeaveMsgData().then((data)=>{
/* 成功示例
    {
    "code":"0",
    "data":{
        "infoCollects":[
            {
                "fieldCode":"name",
                "name":"姓 名",
                "req":"0",
                "sort":0,
                "value":"姓名内容"
            },
            {
                "fieldCode":"idCard",
                "name":"身份证号",
                "req":"0",
                "sort":1,
                "value":"510111111111111111"
            },
            {
                "fieldCode":"gender",
                "name":"性 别",
                "req":"0",
                "sort":3,
                "value":"1"
            }
        ],
        "expectReplyTypes":[
            "0",
            "4"
        ],
        "disClaimerEnable": true,
        "disClaimerContent": "隐私声明内容",
        "title":"留言窗口标题",
        "leaveWords":"留言提示语"    
    },
    "msg":"success",
    "successful":true
}
*/
}).catch((data)=>{
/*失败示例
{
    "code":"1",
    "msg":" ",
    "successful":false
}
*/
})

字段说明

字段类型说明
titleString留言窗口标题
leaveWordsString留言引导语
disClaimerEnableBoolean是否开启隐私声明
disClaimerContentString隐私声明内容
infoCollectsString留言项

infoCollects字段如下:

字段类型说明
fieldCodeString对应收集信息标识
nameString收集项名称
reqBoolean是否必填
sortNumber排序值
valueString信息收集项填充值

expectReplyTypes:回复类型

字段类型说明
0String邮件回复
1String在线回复
3String短信回复
4String电话回复

获取访客历史留言记录数据接口

liveChat.getHisLeaveReplyMsg(): Promise<Object>

示例

liveChat.getHisLeaveReplyMsg().then((data)=>{
/*成功示例
{
"code": 200,
"data": {
    "companyId": "",
    "contents": [
        {
        "leaveData": {
            "content": "测试数据1",
            "leavewordTime": "2023-02-13 14:42:11",
            "visitorName": "lgy"
         },
        "leavewordId": 10,
        "leaveworeStatu": "",
        "leaveworeStatuDesc": "",
        "replyData": [
            {
            "replyContent": "<p>尊敬的用户:</p><p>您于2023-02-13 14:42:11日在本公司网站上留言:测试数据1,现给您答复如下: 。</p><p>欢迎您再次光临本公司网站,感谢您的支持。</p><p>本公司网站客户服务中心</p><p>2023-02-14 10:56:26</p>",
            "replyId": "1",
            "replyNewFlag": "0",
            "replyPerson": "admin",
            "replyTime": "2023-02-14 10:56:32",
            "replyType": "1"
            }
         ]
     },
    ],
    "queryLeavewordId": ""
},
"msg": "success",
"successful": true
}
*/
})

字段说明

字段类型说明
contentsArray访客留言数据集合
leaveDataObject留言数据
replyDataArray回复数据 可通过该字段判断是否回复

提交留言数据接口

liveChat.submitLeaveMsgData(data:Object): Promise<Object>

提交留言项数据。

示例:

liveChat.submitLeaveMsgData({
    "expectReplyType":"1", //期望回复方式
    // key:value,key对应获取留言接口中的fieldCode的值,而value是输入框中的值
    "留言项的fieldCode值": "对应留言项输入的值", 
    ......
    
    "expTime":"2", // 留言回复起始时段
    "expTime2":"24", // 留言回复截止时段
    "feedShow":"留言内容", // 留言内容
    "opStatus":"4", // 留言状态
    "pagereferrer":"", // 来源
    "enterurl":"" // 所在页面地址
}).then((data)=>{
/*成功示例
{
    "code":200,
    "data":{},
    "msg":"success",
    "successful":true
}
*/
}).catch((data)=>{
/*失败示例
{
    "code": 500,
    "msg":" ",
    "successful":false
}
*/
})

提交字段说明

字段类型是否必传说明
expectReplyTypeString期望回复方式
nameString姓名(所有留言项中的一个字段)
......String信息收集的字段,key: value
key:来自获取留言项的fieldCode值,
value:用户输入的内容
expTimeString留言回复起始时段
expTime2String留言回复截止时段
feedShowString留言内容
opStatusString留言状态
"2" -客服忙碌
"3" -客服未响应
"4" -客服离线
"5" -移动窗口上的留言入口
该参数表示在哪种情况下进行的留言,该值的传递与数据分析有关。注意:当客服在线时进行留言,此处的opStatus不管传何值,都会记录为“在线留言”
pagereferrerString来源
enterurlString所在页面地址

注意:以上未完全列举所有提交字段。表单数据中的name,idCard,field20,field25为“获取留言配置”接口下发的信息收集项标识,即infoCollects字段的fieldCode属性。infoCollects中有多少个收集项,提交留言信息接口的表单数据中据应该需要提交多少项。

放弃排队接口

liveChat.giveUpQueue(hasRobotServer:string): Promise<Object>

当访客排队过程中,如果访客不想排队,可实现一个放弃排队按钮,点击按钮后,可调用该方法使访客退出排队。退出成功后,会收到7530消息号,处理放弃排队后的逻辑。若有机器人模式,可重新与机器人进行对话,同时不占用访客排队数。 支持传递一个参数,是否有过机器人对话,0:没有 1:有。传递参数的区别在于,下发提示语不一样,如果传递0,则提示:“您已放弃排队。重新请求#staffService#(人工服务)”。传递1,则提示:“您已放弃排队可继续与机器人对话。重新请求#staffService#(人工服务)”。需要将#staffService#替换成人工服务按钮。点击按钮可实现重新接入人工。

示例

liveChat.giveUpQueue(hasRobotServer:string).then((data)=>{
/*成功示例
{
    "code":200,
    "data": "访客ID",
    "msg":"success",
    "successful":true
}
*/
}).catch((data)=>{
/*失败示例
{
    "code": 500,
    "msg":"",
    "successful":false
}
*/
})

获取离线消息接口

liveChat.getOfflineMsg(): Promise<Object>

可通过config表中的hasOfflineMsg字段判断是否有离线消息,若存在,可通过此接口获取离线消息数据

示例

liveChat.getOfflineMsg().then((data)=>{
/*成功示例
{
    "code":200,
    "data": [{
                "na":"客服姓名",
                "time":"2022-07-13 16:28:32",
                "title":"给您回复消息:",
                "message":"%E4%BD%A0%E5%A5%BD"
            }
            ......
            ],
    "msg":"success",
    "successful":true
}
*/
}).catch((data)=>{
/*失败示例
{
    "code": 500,
    "msg":"",
    "successful":false
}
*/
})

字段说明

字段类型说明
naString客服昵称
timeString回复时间
titleString回复标题
messageString回复内容(编码)

获取留言回复接口

liveChat.getLeaveMsg(): Promise<Object>

可通过config表中的hasLeaveMsgReply字段判断是否有留言回复信息,若存在,可通过此接口获取留言回复数据

示例

liveChat.getLeaveMsg().then((data)=>{
/*成功示例
{
    "code":200,
    "data": [{
        leaveData: {
            content: "访客留言内容", 
            leavewordTime: "2022-08-10 16:38:25", 
            visitorName: "访客姓名"
        },
        leavewordId: 38069,
        replyData: [{
                replyContent: "留言回复内容"
                replyId: "83"
                replyNewFlag: "1"
                replyPerson: "留言回复人"
                replyTime: "2022-08-10 16:40:02"
                replyType: "1"
            }
            // 留言回复多次
            ......
        ]}
        // 访客多次留言
        ......
    ],
    "msg":"success",
    "successful":true
}
*/
}).catch((data)=>{
/*失败示例
{
    "code": 500,
    "msg":"",
    "successful":false
}
*/
})

字段说明

字段类型说明
leaveDataJSON访客留言信息
leavewordIdNumber留言ID
replyDataJSON留言回复内容

leaveData 字段说明:

字段类型说明
contentString访客留言内容
leavewordTimeString访客留言时间
visitorNameString访客姓名

replyData 字段说明:

字段类型说明
replyContentString留言回复内容
replyIdString留言回复ID
replyNewFlagString该条回复访客是否已查看 0:已查看 1:未查看
replyPersonString回复留言的客服昵称
replyTimeString留言回复时间
replyTypeString回复状态 0:未回复 1:已回复

设置客服消息已读接口

liveChat.markReadMsg(): Promise<Object>

可通过此接口设置客服消息已读。

示例

liveChat.markReadMsg().then((data)=>{
/*成功示例
{
    "code":200,
    "data": “”,
    "msg":"success"
}
*/
}).catch((data)=>{
/*失败示例
{
    "code": 500,
    "msg":""
}
*/
})

数据打点接口

liveChat.RBIRecord(type:string, params?:Object): Promise<Object>

该接口用于对访客操作做打点统计,方便后台对访客一些对话或操作行为进行分析。具体描述可查看下面表-2中对type字段的使用描述。

示例

liveChat.RBIRecord('syncRobot').then((data)=>{
/*成功示例
{
    "code":200,
    "data": "",
    "msg":"success",
    "successful":true
}
*/
}).catch((data)=>{
/*失败示例
{
    "code": 500,
    "msg":"",
    "successful":false
}
*/
})

参数说明

字段类型是否必填说明
typestring数据打点类型
paramsObject打点数据

type可选字段(表2)

字段params参数说明说明
syncRobot统计访客是否询问过机器人。在整个机器人对话过程中,只需在访客首次咨询机器人时调用一次即可。若存在机器人转人工后,人工对话结束,又回到机器人对话的情况下(非刷新页面回到机器人),访客又咨询了机器人,则此时需要再调用一次此接口

消息号说明

本章主要对下发的消息做详细阐述,每个消息号都有不同的含义,使用者在收到此消息号后,结合自身业务实现具体功能。在上面章节,我们已经告诉使用者,在使用前,需要优先注册消息接收函数liveChat.notify(callBack),当我们注册好后,回调函数将会收到消息,如下面所示,我们可以将收到的内容打印在控制台看看,大致了解数据结构,以及常见字段。

liveChat.notify(function (event) {
    console.log(event);
    
    //列举console打印出的event结果,实际情况大家可以尝试打印看看
    /*
    {
        code: 702 //此为消息号
        data: {
            type: "text" //消息类型
            sender: "operator" //发送者
            msgContent: "欢迎光临" //消息内容
            chatMsgId: "1585629650330ib6" //消息ID
            faq: 200 //是客服发送常用语
            sys: "2" //消息来源
        }
        tm: 1585629650330
    }
    */
    
    ......
});

下面将一一列举所有消息号,供大家查阅使用。需要注意的是,部分消息号是事件消息(何为事件消息?1),data字段中无type、sender和msgContent属性。

消息列表

消息号是否为事件消息说明
701客服接通对话
702客服发送消息
703客服推送URL地址
705等待客服接受对话
706客服正在输入消息
708客服退出登录
709开关客服实时查看访客输入的内容
710客服主动结束对话
711下发等待服务位数
712推送满意度调查表或者是访客信息收集
713停止满意度调查
720系统消息
735客服传送文件
737其他客服加入对话
738其他客服发送消息
739客服退出多人对话
7004客服信息
7005同步其他窗口发送的消息
7512发送媒体消息
7520中断对话
7521隐藏满意度评价或信息收集
7522满意度评价后设置评价标识为已评价
7529消息撤回
7530放弃排队

消息号

#701

指令描述: 通知访客端对话已经接通。 使用场景: 在访客请求对话被服务器受理并有客服成功接受此对话后,下发此消息给访客端。 使用说明: 在收到此消息后说明对话已经建立连接,可进行如下操作:

  • 字段smallPhoto不为空时,则替换服务器下发数据config中的operatorHead字段,用于消息中客服头像展示。
  • 显示工具栏中发送文件图标(PC网页渠道),在对话未接通前,不能发生图片。
  • 如果存在排队等待时间定时器,可在此消息号中清除。
  • 清除等待消息、排队提示语操作。
  • oid是客服ID,当对对话被其他客服拦截对话后,会再次收到701消息,但oid会不一样。
  • 字段oid与之前客服ID不一致时,以为则该通对话被其他客服服务,同时可重新渲染当前客服的客服信息;
  • 访客未说话,显示自动消息提示语。提示语可从config中的autoTipWords字段获取。
  • 字段msgContent为欢迎语,可展示该消息。
  • 渲染广告信息、导航按钮、扩展窗口配置等(针对下发了的数据,可以直接使用;如果没有下发的数据,暂时没有实现)
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,默认值:system
oidString本次与访客对话的客服ID
mobileOperatorString如果客服是手机客户端登陆,会通知访客端所登录的设备,并且屏蔽掉不能在手机客服端使用的功能。
android
iphone
msgIdString本次对话的消息ID
operatorNameString对话客服的昵称,用来在访客端显示
msgContentString接通对话的欢迎语
olnString客服登录名
vidString本次对话的访客ID
smallPhotoString客服的头像地址(客服配置了才会有此字段)

#702

指令描述: 通知访客端,客服给访客发送消息了。 使用场景: 在客服给访客发消息以后访客会收到此消息。 使用说明: 收到此消息后,可进行如下操作:

  • 字段smallPhoto不为空时,则替换服务器下发数据config中的operatorHead字段,用于消息中客服头像展示。
  • 设置最后一次发送消息的人为客服。
  • 字段msgContent不为空时:如果字段sys为4时,以群发消息样式展示该消息,否则以客服消息样式展示该消息。
  • 字段sys为0时,表示是客服发送的消息,客服发送消息数+1,同时也表示客服已经发送过消息。
  • 根据是否开启满意度评价、访客发送消息数、客服发送消息数、是否已经评价过这几个条件来判断是否需要展示满意度评价界面。
  • 设置浏览器中对话窗口tab标签页的title闪动提示及播放提示音。
  • 当客服和访客都发过消息时,取消评价按钮被禁用状态。
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,默认值:operator
msgContentString发送的消息内容
sysString0:客服发送的消息
1:未使用
2:自动应答回复的消息
3:智能助理回复
4:系统群发消息
chatMsgIdString消息ID,每条消息都有一个消息ID,主要消息撤回时会用
smallPhotoString客服的头像地址,协同对话时,每个客服发送消息都是走的该消息,故头像会不一样。(客服配置了才会有此字段)
timeOutTimeString客服发送消息给访客时,若访客上一条发送消息时间距此超过了60、90、120秒,会下发此字段
faqString是否使用机器人知识库发送的消息
0:否,1:是
optionsString机器人相关问,若faq为1时,可能存在此字段

#703

指令描述: 客服推送链接给访客。 使用场景: 在客服给访客推送了一个链接的时候访客会收到此消息。 使用说明: 收到此消息后将链接显示给访客也可显示的同时直接打开,可进行如下操作:

  • 字段smallPhoto不为空时,则替换服务器下发数据config中的operatorHead字段,用于消息中客服头像展示
  • 设置最后一次发送消息的人为客服
  • 字段msgContent不为空时,展示该消息
  • 客服发送消息数+1
  • 设置客服已经发送过消息
  • 根据是否开启满意度评价、访客发送消息数、客服发送消息数、是否已经评价过这几个条件来判断是否需要展示满意度评价界面
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,默认值:operator
msgContentString链接的地址
chatMsgIdString消息ID,每条消息都有一个消息ID,主要是消息撤回时会用
smallPhotoString头像地址,协同对话时,每个客服发送消息都是走的该消息,但头像不一样,故下发此值。若客服未配置头像,则不会下发该字段。
naString客服昵称

#705

指令描述: 通知访客端进行等待。 使用场景: 在访客请求对话后会收到此消息。 使用说明: 收到此消息后表示已经与服务器建立了连接,此时需要等待客服接受此对话,可进行如下操作:

  • 字段msgContent不为空时,展示该消息
  • 根据字段wt判断是否展示留言提示语
  • 根据config中busyWaitTime字段乘以1000之后与waitTime的差值,用于定时器的时间,用config中leavewordEnable字段和字段wt,来判断是否显示例如(如果您不想继续等待, 请点击留言)这样的消息
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,默认值:system
msgContentString等待提示语内容
wtNumber是否需要显示留言链接或者按钮
1:显示
0:不显示
还需结合config中leavewordEnable字段判断是否开启了留言功能
waitTimeNumber当访客排队时刷新页面,此时会使用该值来显示等待时间
vidString访客ID
vnaString此处下发信任访客或在访客信息收集时填写的姓名,访客填写的姓名用于等待提示语中显示对访客的称呼。若是游客,则可能不会下发此值。
countString

#706

指令描述: 通知访客,当前客服正在输入。 使用场景: 访客端可查看到客服正在输入的提醒。 使用说明: 收到此消息后提醒访客,此时客服正在回复中,可在访客端实现“客服正在输入”的提示。特别说明。可进行如下操作:

  • 字段enable为true时,定时展示“正在输入”的消息,超过10s后需手动清除
字段类型说明
localMessageBoolean是否是本地消息
enableBoolean当收到此消息时,表示客服正在输入,默认值:true

#708

指令描述: 通知访客,当前客服已经离线。 使用场景: 在客服退出客服端的时候会收到到此消息。 使用说明: 收到此消息后代表与其对话的客服已经离线,但不是对话结束消息,此时服务器会重新给此访客分配客服。如果有其他客服在线可进行如下操作:

  • 当前对话状态会设置为WAIT
  • 显示客服已经退出对话的消息

#709

指令描述: 客服开启实时查看访客输入功能。 使用场景: 在客服端中,客服开启实时查看功能,访客端收到此消息后,可将访客实时输入的内容同步给客服查看。 使用说明: 收到此消息后代表客服开启了实时查看,访客输入的内容可实时传送给客服,客服端就可以看到访客实时想问的问题,以便快速解答,可进行如下操作:

  • 字段enable为true时,设置对话状态为INSTANT;否则设置对话状态为CHAT
字段类型说明
enableBooblean当收到此消息时,表示客服开启实时查看
true:开启实时查看
false:关闭实时查看
msgContentString未再使用

#710

指令描述: 客服结束对话。 使用场景: 客服结束对话,或者对话超时系统主动结束对话时会收到此消息。 使用说明: 在收到此消息后对话会结束,可进行如下操作:

  • 根据是否已经评价过、config中exitSurvey字段、访客是否发过消息、客服是否发过消息几个条件来判断是否显示满意度评价界面
  • 设置对话状态为END
  • 根据config中jumpToRobotEnable字段判断是否能接入到机器人服务(对话结束后,自动回到机器人状态)
字段类型说明
localMessageBoolean是否是本地消息
enableBoolean当收到此消息时,表示客服主动结束对话

#711

指令描述: 通知访客当前正在等待接通对话的队列中的位置。 使用场景: 在请求的访客人数过多的时候,会有排队信息发出。 使用说明: 收到此消息后,将访客目前排在第几位通知给访客,可进行如下操作:

  • 根据config中jumpToRobotEnable字段判断是否显示“放弃排队”的消息。
  • 展示当前排队位置的消息(排队位置有更新时,会再次收到该消息,根据字段ps最新的数值去替换展示)
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,默认值:system
msgContentString排队提示语
psNumber当前在排队队列中的位置,索引从0开始

#712

指令描述: 客服推送评价或访客信息收集。 使用场景: 在客服需要进行信息收集和服务评价的时候,会收到此消息。 使用说明: 收到此消息后,可实现满意度调查或信息收集的目的,可进行如下操作:

  • 字段isOver为false时,才进行接下来的步骤,具体看isOver字段描述
  • 根据字段popType的值,来判断显示信息收集还是满意度评价界面
字段类型说明
popTypeString推送消息类型
1:信息收集
2:满意度调查
chatMsgIdString本通对话的ID,提交访客信息收集或满意度评价时会用于接口参数
inviteEvaIdString邀评ID,仅客服推送满意度评价时才有此字段下发
processedString本次推送的访客信息收集或满意度评价是否已提交,1:已提交,0:未提交
isOverBoolean开启会话保持,客服端给访客推送信息收集或者是评价窗口时,若已评价,此时访客刷新窗口,在同步此消息时,用来判断是否需要显示窗口。
true:不显示
false:显示

注意:processed与isOver看起来用处重复,其实processed适用于显示多次评价框的情况,比如客服推送2次满意度,则在历史框中就显示2个满意度框,而评价结果以最后提交的满意度为准。而isOver比较适用于整个界面只显示一次的情况,比如以弹窗形式打开满意度评价窗口。此字段同样适用于推送调查表。

#713

指令描述: 阻止访客评价。 使用场景: 当访客超时结束,长时间未回复,黑名单阻止,IP阻止时,会收到此消息。 使用说明: 在收到此消息后访客端的所有关于评价的入口都不应再出现,可进行如下操作:

  • 对话状态不是END时,禁用满意度评价,进行友好提示。

#720

指令描述: 系统消息通知。 使用场景: 在访客被IP阻止,后台配置特定场景的提示语或者对话被关闭了的时候会收到此消息。 使用说明: 在收到此消息后将消息内容展示给访客即可,可进行如下操作:

  • 字段msgContent不为空时,展示该消息
  • 播放提示音
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,system:系统 operator:客服 visitor:访客
msgContentString系统消息内容
levNumber0:警告消息
1:一般消息
2:未使用
3:对话超时结束时或session为空时,此时可将对话切回机器人状态,或保持现状。
4:未使用
ptmNumber系统消息的展示时间,是否要隐藏需使用者自行实现。默认值:5(秒)

#735

指令描述: 通知访客端有文件需要接收。 使用场景: 在客服给访客发送截图或者文件的时候会收到此消息。 使用说明: 在收到此消息后如果是截图可以根据thumbImageUrl显示缩略图,点击出现大图用furl,文件则使用furl作为下载地址。特别说明,可进行如下操作:

  • 设置最后一次发送消息的人为客服
  • 字段smallPhoto不为空时,则替换服务器下发数据config中的operatorHead字段,用于消息中客服头像展示
  • 判断文件是哪种类型,展示对应结构的消息
  • 客服发送消息数+1
  • 播放提示音
字段类型说明
typeString消息类型,默认值:file
senderString本次消息的发送者,默认值:operator
pidString发送文件的客服ID
fidString发送文件的ID
fnaString发送文件的名称
furlString发送文件的下载地址
fszNumber发送文件的大小
naString客服昵称
mediaTimeString多媒体时间(如果是语音才有此属性)
smallPhotoString客服小头像地址
chatMsgIdString消息ID,每条消息都有一个消息ID,主要是消息撤回时会用
widthNumber图片宽度(如果是图片有此属性)
HeightNumber图片高度(如果是图片有此属性)
thumbImageUrlString图片缩略图地址(如果是图片有此属性)
ftpString文件类型

注意:部分字段只针对部分文件类型才会下发。

#737

指令描述: 有协同和插入对话权限的客服可加入对话。 使用场景: 如果客服需要其他客服进行协助回复访客,或者有权限的可插入其他客服的对话。共同服务于同一个访客。此时访客端会收到此消息。 使用说明: 收到消息后在访客端可以看到客服插入对话的提示语,可进行如下操作:

  • 字段msgContent不为空时,根据字段ty来判断是协同对话还是插入对话,展示该消息
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,system:系统 operator:客服 visitor:访客
naString插入对话的客服昵称
tyString0:协同对话
1:插入对话
msgContentString客服插入对话或者协同对话时,后台配置的提示语。
onaString插入对话的客服名称
oidString插入对话的客服Id
cidString公司ID

#738

指令描述: 协同或插入对话的客服发送的消息。 使用场景: 客服发送消息时,会下发此消息。 使用说明: 收到消息后在访客端可以看到插入对话或协同对话的客服发给访客的消息,可进行如下操作:

  • 字段smallPhoto是协同或者插入对话的客服头像,字段msgContent不为空时,展示该消息,播放提示音
  • 字段sys为0时,客服发送消息数+1,根据是否已经评价过、对话状态不为END、config中exitSurvey字段、访客是否发过消息、客服是否发过消息几个条件来判断是否显示满意度评价界面
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,system:系统 operator:客服 visitor:访客
naString客服昵称
sysString系统消息
0:客服回复
1:系统消息
3:智能助理回复
smallPhotoString客服头像,若客服未设置头像,则无此段下发
msgContentString客服插入对话或者协同对话时,客服发送消息内容。
chatMsgIdString消息ID,每条消息都有一个消息ID,主要是消息撤回时会用
vidString访客ID
oidString发送消息的客服的ID

#739

指令描述: 客服退出多人对话。 使用场景: 如果某个客服退出多人对话,此时访客端会收到此消息。 使用说明: 收到消息后,在访客端可以看到客服退出对话的提示语,可进行如下操作:

  • 根据字段na来判断是退出协同对话还是退出插入对话,展示对应的消息提示语,此消息展示内容自行定义。
字段类型说明
naString退出对话的客服昵称
tyString0:退出协同
1:退出插入对话
oidString退出对话的客服Id
cidString公司ID

#7004

指令描述: 显示客服信息。 使用场景: 当访客端接入对话后,服务器会下发此消息,用于展示客服信息给访客。 使用说明: 收到消息后,可展示客服信息,可进行如下操作:

  • 在页面上渲染展示该客服的相关信息
字段类型说明
opInfoJSON客户信息

opInfo字段说明:

字段类型说明
faceString客服头像
nameString客服姓名
nicknameString客服昵称
skillNameString所属对话组
emailString邮箱
telephoneString固定电话
mobileString手机号码
departmentString部门
contactString联系地址

#7005

指令描述: 同步其他窗口发送的消息。 使用场景: 访客打开A,B,C三个对话窗口,如果访客在A窗口说了一句话,此时B和C窗口会收此消息。在开启会话保持功能的情况下,刷新窗口同步访客发的消息。 使用方法: 访客打开A,B,C三个对话窗口,如果访客在A窗口说了一句话,此时B和C窗口会收此消息。包括文件和文本消息,可进行如下操作:

  • 字段msgContent存在时,展示该消息;不存在时,按照发送文件的逻辑来实现
  • 设置访客已经发送过消息
  • 访客发送消息数
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,system:系统 operator:客服 visitor:访客
msgContentString访客发送的消息内容,注意:type为file时,无此字段
chatMsgIdString消息ID,每条消息都有一个消息ID,主要是消息撤回时会用
fnaString发送文件的名称
furlString发送文件的下载地址
fszNumber发送文件的大小
voiceTimeNumber发送媒体文件的时长

#7512

指令描述: 客服发送多媒体消息给访客。 使用场景: 客服发送机器人知识库的媒体消息给访客P4消息、图片、语音、视频、图文。 使用说明: 访客端接收该消息后根据type来分别具体解析对应的媒体消息,可进行如下操作:

  • 字段smallPhoto不为空时,则替换服务器下发数据config中的operatorHead字段,用于消息中客服头像展示
  • 根据字段type来判断,需要展示哪一种消息结构
字段类型说明
typeString媒体消息类型,有以下类型:
img:图片
voice:语音
video:视频
news:图文
p4:扩展窗口(如风格3的右侧扩展窗口)
dataJSON不同类型消息的数据,可查看下表
senderString本次消息的发送者,system:系统 operator:客服 visitor:访客
oidString客服id
naString客服姓名
smallPhotoString客服小头像
chatMsgIdString对话消息id

图片类型:

字段类型说明
linkString图片地址
widthNumber图片宽度
heightNumber图片高度

语音类型:

字段类型说明
linkString语音地址
mediaTimeString语音时长

视频类型:

字段类型说明
linkString视频地址
linkThubUrlString视频缩略图地址

图文类型:

字段类型说明
imgTextNumString图文个数
imgTextsArray图文数据,如下格式:
{
clickUrl: "点击地址",
desc: "描述",
imageUrl: "图片地址",
title: "图文标题"
}

p4类型:

字段类型说明
titleString标题
linkStringp4地址
contentString描述内容

#7520

指令描述: 对话中断指定时间 此时不能发送消息。 使用场景: 对话N分钟后,访客在M分钟内不允许发送消息,并提示 “对话时长限制提示语”。当对话时长超过设置时长后,服务器下发此消息暂停对话,此时访客不能继续发送消息,对于客服可继续发消息。限制时长结束后对话再次接通,访客可以继续对话。特别说明,可进行如下操作:

  • 根据字段status来判断访客能否继续发消息
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,system:系统 operator:客服 visitor:访客
statusString访客对话状态
1:阻止访客发消息
0:允许访客发消息
breakTimeNumber中断时间,以倒计时呈现,单位毫秒
msgContentString中断提示语
isOverString1:停止中断对话
0:不做任何处理

#7521

指令描述: 将客服推送的满意度评价或信息收集隐藏。 使用场景: 多窗口对话的时候,当访客在其中一个窗口内提交了满意度评价或信息收集表后,服务器下发此消息,用于关闭多窗口内的弹窗层;当接收的isOver为true时,前端将开启的满意度评价及信息收集弹窗关闭。可进行如下操作:

  • 根据字段isOver来判断,是否需要关闭满意度或访客信息收集界面
字段类型说明
typeString消息类型,默认值:text
senderString本次消息的发送者,system:系统 operator:客服 visitor:访客
popWindowIdString通过提交满意度或访客信息收集时带的窗口ID,可用于找到之前评价窗口进行关闭或删除操作
isOverBoolean是否关闭弹窗
true:关闭

#7522

指令描述: 满意度评价后设置评价标识为已评价。 使用场景: 访客提交满意度或拒绝评价满意度时,会收到此消息。 当收到此消息后,说明访客已经进行过评价了,如果是已评价,则在对话结束后将不再显示满意度调查表。若是拒绝,则在满足一定条件下,会显示星星评价,对话结束后,在满足条件下,会弹出满意度调查表,可进行如下操作:

  • 根据字段status的值来判断,满意度是已评价还是已拒绝
字段类型说明
statusString访客评价状态:
1:已评价
2:访客拒绝评价

#7529

指令描述: 消息撤回 使用场景: 客服点击撤回时下发给访客端,访客端根据chatMsgId 删除对应的id的元素,可进行如下操作:

  • 根据字段chatMsgId来找到对应的消息结构,并清除
字段类型说明
chatMsgIdString需要撤回消息的消息ID
revokeTimeString消息撤回时间

#7530

指令描述: 放弃排队 使用场景: 访客点击放弃排队,服务器下发访客已放弃排队消息,前端处理相关排队提示语。(包括多窗口的使用场景),可进行如下操作:

  • 将原来显示放弃排队按钮的提示语,替换成此消息下发的提示语,并将消息中的“#staffService#”替换为人工服务按钮,这样可点击再次请求人工。
字段类型说明
msgContentString放弃排队提示语

#7544

指令描述: 第三方满意度评价 使用场景: 可在MG后台配置使用第三方满意评价调查表。可进行如下操作:

  • 展示第三方满意度调查表链接。
字段类型说明
chatMsgIdString消息ID
msgContentString满意度引导语
timeString发送离线消息的时间
urlString第三方满意度评价的URL

#7545

指令描述: 离线消息 使用场景: 客服通过MG后台“对话管理”中发送离线功能,向访客发送离线消息时,访客会在下次进入对话时收到此消息。可进行如下操作:

  • 展示离线消息给访客
字段类型说明
titleString标题
naString客服昵称
timeString发送离线消息的时间
msgContentString离线消息内容

组件集成

提供文件选择器和输入框组件,方便开发者开发,以及将时间花在与业务相关的功能开发上。

文件上传

方式一

初始化方法: new UploadFile('容器Id', successCallBack:Function, errorCallBack: Function, options:JSON)

1、首先要从JSSDK中引入模块,window.UploadFile = live800.UploadFile; 如上面 前端准备-步骤
三中示例代码

2、new UploadFile('upfileContent', function (data) {
//成功的提示
console.warn(data);
}, function (data) {
//失败的提示
console.error(data);
}, {
maxHeight: 170, // maxWidth和maxHeight主要设置的是占位图大小,非限制图片高宽。
maxWidth: 170,  // maxWidth和maxHeight主要设置的是占位图大小,非限制图片高宽。
quality: 0.5,     // 压缩比 值只能<1
acceptType: 'image/*', //input 应该接受的文件类型
})

3、对上传按钮设置样式,参考代码:
.upLoadFileLabel{
    display: inline-block;
    width: 32px;
    height: 32px;
    border-radius: 5px;
    line-height: 32px;
    text-align: center;
    background-color: #3378ce;
    color: #fff;
}

参数说明:

参数是否必传说明
参数1实例化上传文件组件后,会在此ID容器中生成上传文件按钮,可对class名为:upLoadFileLabel 设置展示样式
参数2发送文件成功的匿名回调函数,一次文件发送会触发2此该回调函数,一次是正在发送,一次是发送成功。在第一次触发时,可显示一个正在发送的效果。如果发送的是图片,可在此次返回数据的data字段中拿取信息,可用来设置正在发送的效果,除此图片以外的文件没有data字段返回。data字段信息:
height:原图高
width:原图宽
showHeight:默认按照最大高宽170等比缩放出的高度。(可通过参数4来修改
最大高宽范围)
showWidth:默认按照最大高宽170等比缩放出的宽度。(可通过参数4来修改
最大高宽范围)
url:图片的base64字符串
参数3发送文件失败的匿名回调函数,建议将数据打印出,方便开发获取数据
参数4支持传递一个JSON对象,可配置信息如下:
maxHeight: 设置占位图最大高度,非限制图片高宽。
maxWidth: 设置占位图最大宽度,非限制图片高宽。
quality: 压缩比 值只能<1
acceptType: input file 接受的文件类型

方式二

此方式是定义一个FormData对象,且key为“file”,值为类文件Blob对象。

const form = new FormData();
form.append('file', '文件的Blob对象');
liveChat.uploadFile({ fName: `文件名`, data: form}).then((res)=>{
    // 可以从res拿到上传成功的文件地址和其他信息
    console.log('成功',res);
}).catch(err => {
    console.log('失败');
});

输入框

初始化方法 const editor = new Editor('容器ID', options)

字段说明:

参数类型说明
容器IDString初始化输入框后的宿主DOM的ID
optionsJSON配置参数,如下表

options字段说明

字段类型说明
chatServiceUrlString上传文件域名+应用名
vtString校验参数,可通过ready接口返回的配置信息中获取
visitorIdString访客ID
maxLengthNumber最大输入长度,中文、英文、特殊符号以及img,都占是一个长度
sendKeyString发送消息快捷键 enter or ctrlEnt
sensitiveWordsString敏感词,可通过ready接口返回的配置信息中获取
loadingUrlString文件上传成功占位图
insertUrlString
failUrlString文件上传失败占位图
base64OptionsString压缩图片配置信息,详细见下表说明
sendMsgEventFunction发送消息事件
noticeEventFunction输入框通知事件
pasteEventFunction粘贴操作的事件
dropEventFunction拖拽操作的事件
keyDownEventFunctionkeyDown的事件
keyUpEventFunctionkeyUp的事件
inputEventFunction输入打字的事件
clickEventFunction点击的事件
focusEventFunction获取焦点事件
blurEventFunction失去焦点的事件

base64Options字段说明

字段类型说明
maxWidthNumber在输入框中图片展示的最大宽度
maxHeightNumber在输入框中图片展示的最大高度
qualityNumber压缩图片力度,值范围0~1之间的数

发送消息

editor.sendMsg()

插入富文本内容

editor.insertHTML(html:string)

插入文本内容

editor.insertText(text: string)

换行

editor.changeLine()

设置焦点

editor.focus()

失去焦点

editor.blur()

禁用输入框

editor.disabled()

启用输入框

editor.enable()

清空输入框

editor.clean()

特别说明

对话状态

在启动对话后,当前对话状态可通过LiveChat.chatStatus获得。 主要有以下几种状态:

对话状态描述
WAIT等待状态,等待客服应答
CHAT正常对话状态
INSTANT客服开启实时查看功能时,会是该状态
END对话已结束

以上状态,请不要随意赋其它值,以防对话异常,可用作当前对话状态判断

客服正在输入

当收到706消息号时,该消息不会收到客服停止输入的状态,即enable不会为false。需要开发者收到此消息后,设置计时器,在2秒以后自动隐藏提示。若在2秒内再收到此消息,则将计时器重置。若超过2秒后再收到,则重新计时显示即可。

客服推送文件

收到735消息时,此消息比较特殊,此消息号中会存在访客消息,原因是在使用Live800截图工具时,截图后,发送给后台,后台会通过此消息下发给页面,作为访客消息展示在历史框中。

中断对话

当收到7520消息号时,需要使用者自行实现中断功能,若此时调用发送消息函数,依然可以发送消息的。

路由配置

渠道管理-Web-SDK接入模块中,可配置接入规则,即该渠道对话接入到某个对话组或某个客服,或是接入某个路由规则。在配置上后,需将configID配置在liveChat.readydefinedParams中,这样接入的对话会通过该configID接入到该渠道配置的接入规则中进行对话分配以及路由差异化。

访客ID

访客ID为非必填配置,用来区分访客唯一性。在不传的情况下,Live800服务器会自动生成一个访客ID,并在启动对话后,会将该visitorID下发给开发人员,开发人员可存储该值,在下次用户打开窗口进线时,将该值配置上,Live800服务器会认定该访客ID为同一个访客,之前对话以及相关信息会进行关联。

附录

在线客服平台结果返回码

返回码说明
-1系统繁忙(start方法返回code值)
0请求成功(start方法返回code值)
1请求失败(start方法返回code值)
20000请求参数错误(start方法返回code值)
20001频繁发言
20010提示信息(不在服务时间/访客被阻止/高排队/频繁请求/客服忙碌,start方法返回code值)
80001无效token(start方法返回code值)
80002token过期

Footnotes

  • 事件消息指:无直接消息内容展示,只是一个事件通知消息,根据不同事件类型实现相应功能。

Keywords

live800

FAQs

Package last updated on 20 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts