乐语在线客服WEB SDK接入文档

说明

  • 此sdk主要为了满足有开发能力的客户完全自定义对话界面的需求
  • 在调用此文档之前,请先从客服获取appId

基本调用方式

        <script type="text/javascript" src="../scripts/looyusdk.js"></script>
        <script type="text/javascript">
            LooyuSDK.init({
                appId:'5b06c8229536c17e86b8b8f1', // 您的appId
                appCode:'xdf133113', //您的app标识
                compId:1000000,   //你的公司ID
                groupId:100000    //接入的分组ID

            }).on('prepared',function(data){ //初始化完成,我们可以开始建立对话或者发送其他数据给looyu后台
                if(data.err != 0){ //发生错误
                    return;
                }
                LooyuSDK.connect(); //建立对话
                LooyuSDK.leaveMessage(); //留言
            }).on('connected',function(data){
                if(data.mode == 0 ){
                    //客服离线,我们可能要切换到留言界面或者自助界面
                }else if(data.mode == 1){
                    //客服在线,等待在begin事件中开始对话
                }else if(data.mode==2){
                    //进入队列,请在queue事件中提示客户
                }

            }).on('queue',function(data){
                console.log('你进入服务队列,当前位置为:’+data.pos);
            }).on('begin',function(data){
                console.log('对话开始,客服ID为:‘+data.userId);
            }).on('leave',function(data){
                console.log('有人离开对话:'+data.userId);
            }).on('close',function(){
                console.log('对话已经关闭')
            }).on('message',function(){
                console.log('我们收到消息'+data.msg); 
            })
            .on('disconnected',function(data){
                console.log('网络中断,我们正在重试')
            }).on('resume',function(){
                console.log('网络恢复')
            })
        </script>

全局配置

   LooyuSDK.option({
        retryTimes:5, //发送数据时,如果遇到网络错误,重试次数,超过次数将触发disconnected事件
        retryTimeout:10 //,单位:秒,发送数据时,如果遇到网络错误,重试时间,超过时间将触发disconnected事件
    })

初始化

    LooyuSDK.init({
        appId:'',
        appCode:'',
        compId:10000,
        group:10000,
        clickPage:'',
        fromUrl:'',
        keyword:'',
        channel:0,
        lang:'',
        customize:{
            userId:'',
            promoter:'',
            promoteId:'',
            column0:'',
            ...
            column4:''          
        }
    },function(data){
    })

参数一说明:

参数 必选 默认 说明
appId 接入方由我方提供,向客服咨询获取
appCode 接入方标识码,app标识(自定义,为3到24位英文和数字字符,供后台记录统计分析)
compId 接入的公司ID,可在在线客服后台查到
group 接入的分组ID,可从在线客服后台获取
channel 0 对话的站点ID,可从在线客服后台获取
clickPage 访客当前页面URL
refer 访客来源地址(比如百度或者其他第三方地址)
keyword 访客的搜索词
lang zhCN 访客的语言标识(可选项为:en,zhCN,zhTW,ru)
customize 自定义访客信息,供后台记录和分析
customize.userId 访客的ID,比如在用户网站上有登录系统,访客登录后可传递此ID给客服后台供记录和分析
customize.promoter 推广者ID
customize.promoteId 推广来源ID
customize.columnx 5个自定义信息

参数二说明: 此参数为初始化完成后的回调函数,可不指定,通过监听“prepared”事件达到相同的效果

data属性说明

属性 说明
err 错误,0表示完成,其他错误见错误码表

事件绑定


    LooyuSDK.on(eventName,function(resp){
    });

返回值: LooyuSDK对象自己,可以链式调用

事件说明

prepared

初始化完成,可以进行下一步请求,调用示例:


    LooyuSDK.on('prepared',function(){
        LooyuSDK.connect(); //发起对话请求
    });

connected

和服务器建立连接后触发,并尝试开始对话,调用示例:


    LooyuSDK.on('connected',function(data){

    });

data的属性说明:

属性 说明
err 0:成功,其他数字见错误码说明
mode 0:客服不在线或者忙碌,请到留言或者自助界面,1:对话接通,请响应begin事件,2:到队列,请响应queue事件

begin

对话建立完成(在排队结束时也会收到此消息),调用示例:


    LooyuSDK.on('begin',function(data){
    })

data的属性说明:

属性 说明
userId 客服的登录名
userName 客服的外部名称
userName 客服的外部名称
mobile 客服手机号码
phone 客服座机号
email 客服邮箱地址
chatId 对话ID

message

收到消息时,触发此事件,调用示例:


    LooyuSDK.on('message',function(data){
    })

data的属性说明:

属性 说明
id 消息ID
fromId 发送者ID
fromName 发送者外部名称
time 时间戳
private 私人消息,默认为false
category 消息类型:0:文本消息,1:图片消息,2:文件,3:语音,4:视频
msg 消息内容,如果为文件语音类消息,则为一个http链接地址

join

有人加入到对话时触发,调用示例:


    LooyuSDK.on('join',function(data){
    })    
属性 说明
userId 用户ID
userName 显示名字
type 用户类型,0:客服,1:访客

leave

有人离开对话时触发,调用示例:


    LooyuSDK.on('leave',function(data){
    })

data的属性说明:

属性 说明
userId 离开的用户ID

close

会话关闭时触发


    LooyuSDK.on('close',function(data){
    })

disconnected

网络中断,sdk会不断进行重连


    LooyuSDK.on('disconnected',function(data){
    })

resume

网络恢复


    LooyuSDK.on('resume',function(data){
    })

rating

客服要求访客进行评价


    LooyuSDK.on('rating',function(data){
    })

typing

客服正在输入内容


    LooyuSDK.on('typing',function(data){
    })

queue

客服正在输入内容


    LooyuSDK.on('queue',function(data){
    })

data的属性说明:

属性 说明
pos 访客在队列中的位置

transfer

对话被转移给其他客服


    LooyuSDK.on('transfer',function(data){
    })

data的属性说明:

属性 说明
userId 转入的客服ID
userName 转入的客服外部名称
chatId 新的对话ID

发起对话请求


var reqId = LooyuSDK.connect(function(data){
});

返回值:本次请求ID

data属性说明见connected事件

发送消息


var reqId = LooyuSDK.send(msg,function(data){
});

返回值:本次请求ID

data属性说明:

属性 说明
id reqId
err 0:发送成功,其他错误见错误码表

发送留言

    var reqId = LooyuSDK.leaveMessage({
        name:'', //名字
        phone:'', //电话
        email:'', 
        qq:'',
        weixin:'',
        column0:'', //5个自定列
        column1:'',
        column2:'',
        column3:'',
        column4:'',
        msg:''         
    },function(data){

    });

data属性说明:

属性 说明
id reqId
err 0:发送成功,其他错误见错误码表

发送自定义表单

    var reqId = LooyuSDK.form({
        config:0,//配置名字
        name:'', //名字
        gender:'',//性别,0:未知,1:男,2:女
        phone:'', //电话
        mobile:'',
        email:'', 
        qq:'',
        weixin:'',
        column0:'', //10个自定列
        column1:'',
        column2:'',
        column3:'',
        column4:'',
        column6:'',
        column7:'',
        column8:'',
        column9:''   
    },function(data){

    });

请求参数说明:

属性 必填 说明
config 后台配置的表单ID
其他项目 依据后台配置

data属性说明:

属性 说明
err 0:发送成功,其他错误见错误码表

自助答疑

从客户在后台配置的问题中查找匹配的答案

    var reqId = LooyuSDK.robot(question,function(data){
        err:0,
        result:[{
            id:0,//答案的ID
            question:'', //匹配的问题
            answer:'', //匹配的答案
            attach:[{
                path:'', //附件下载路径
                name:'' //附件名字
            }...] //如果有附件的话,此处为相关的文件url地址
        }...]
    });

data属性说明:

属性 说明
err 0:发送成功,其他错误见错误码表
result 查询结果,如果result.length==0,则为没有找到匹配的答案

自助答疑反馈

    var reqId = LooyuSDK.robotRating({
        id:0, 
        question:'',
        rating:0 
    },function(data){
        err:0,
    });

请求参数说明:

属性 必填 说明
id 答案的ID
question 访客的问题
rating 0:无用,1:有用

data属性说明:

属性 说明
err 0:发送成功,其他错误见错误码表
result 查询结果,如果result.length==0,则为没有找到匹配的答案

访客评价

对客服的服务进行评价

    LooyuSDK.rating({
        rating:1,  
        desc:''  
    },function(data){
    });

请求参数说明:

属性 必填 说明
rating -1:很差,1 :不满意,2:一般,3:满意,4:非常满意
desc 详细评价

data属性说明:

属性 说明
err 0:发送成功,其他错误见错误码表

读取历史消息

    LooyuSDK.history(
    function(data){
    });

data属性说明:

属性 说明
messages 历史消息数组

历史消息格式:

{
    id:13331111, //时间戳
    from:''    , //发送者
    msg:''     , //消息内容
    id:11111   , //消息Id
}