udesk

来自于:udesk立即使用

概述

udesk是一款实现手机用户与企业客服保持实时沟通的在线工具。本模块封装了udesk的相关接口,使用此模块需先注册udesk来获取appKey,appId和domain。

注册udesk: 登入udesk官网注册udesk账号,进入管理员页面,在管理中心-单点登录中获取共享的秘钥,domain为你注册的域名,例如:udesk.udesk.cn。

在 iOS 端最低适配版本为iOS 8

initUdesk

初始化udesk

initUdesk({param})

params

appId:

  • 类型:字符串
  • 默认值:无
  • 描述:注册udesk后,从udesk后台获得的appId,不可为空

appKey:

  • 类型:字符串
  • 默认值:无
  • 描述:注册udesk后,从udesk后台获得的appKey,不可为空

domain:

  • 类型:字符串
  • 默认值:无
  • 描述:udesk域名,注册后获取,不能为空

sdkToken:

  • 类型:字符串
  • 默认值:无
  • 描述:用户唯一标示,用来识别身份,由开发者生成传入,传入的字符请使用 字母 / 数字 等常见字符集 。就如同身份证一样,不允许出现一个身份证号对应多个人,或者一个人有多个身份证号,不可为空

示例代码

var param = {
    appId:'***********',
    appKey:'************',
    domain:'***.udesk.cn',
    sdkToken : '************'
};

var udesk = api.require('udesk');
udesk.initUdesk(param);

补充说明

使用此模块,必须先用initUdesk初始化

可用性

iOS系统 Android系统(4.0及以上)

可提供的1.0.0及更高版本

addUserInfo

添加用户相关信息

addUserInfo({param})

params

nick_name:

  • 类型:字符串
  • 描述:(可选项) 用户昵称;
  • 默认值:无

cellphone:

  • 类型:字符串
  • 描述:(可选项) 用户电话。如果给顾客设置了手机号码,要保证不同顾客对应的手机号不一样,如出现相同的,则不会创建新顾客
  • 默认值:无

email:

  • 类型:字符串
  • 描述:(可选项) 用户邮箱。如果给顾客设置了邮箱,要保证不同顾客对应的邮箱不一样,如出现相同的,则不会创建新顾客
  • 默认值:无

description:

  • 类型:字符串
  • 描述:(可选项) 用户描述;
  • 默认值:无

custom:

  • 类型:JSON 对象
  • 描述:(可选项)用户自定义字段
  • 内部字段:自定义key,自定义value(支持字符串和数组)
{
    custom1: 'apicloud',   // 字符串类型;用户自定义字段1
    custom2: [                // 数组类型;用户自定义字段2
        "legg",
        "leee",
        ...
    ],
    ...
  }

示例代码

var param = {
    nick_name: 'sixer',
    cellphone: '00113233',
    email: 'xu23@163.com',
    description: '测试描述'
};
var udesk = api.require('udesk');
udesk.addUserInfo(param);

补充说明

使用此模块会讲用户信息传入udesk web端,用于客服查看工单时供客服参考,此接口必须在showConversation(),showFAQSection()之前之前执行。

可用性

iOS系统,Android系统(4.0及以上)

可提供的1.0.0及更高版本

unreadMessagesCount

获取未读消息数量

unreadMessagesCount(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
     count : 6                  //数字类型;未读消息数量
}

示例代码

var udesk = api.require('udesk');
udesk.unreadMessagesCount(function(ret) {
                          if (ret) {
                            alert(JSON.stringify(ret));
                          }
                        });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unreadMessages

获取未读消息

unreadMessages(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
      unreadMessages :                      //数组类型;未读消息数组
  [
      {                              //JSON对象;未读消息相关信息
          content :                   //字符串类型;消息内容
          messageId :                   //字符串类型;消息ID
          agentJid :                   //字符串类型;客服JID,(android不支持)
          avatar :                   //字符串类型;消息发送人头像,(android不支持)
          nickName :                   //字符串类型;消息发送人昵称,(android不支持)
          messageType : 0                  //数字类型;消息类型
     // messageType 取值范围:
     // 0,文字
     // 1,图片
     // 2,语音
     // 3,咨询对象(android不支持)
     // 4,转接
     // 5,欢迎语(android不支持)
     // 6,结构化消息
     // 7,离线留言
     // 8,视频
     // 9,消息撤回(android不支持)
     // 10,地理位置消息
     // 11,文件类型
     // 12,udeskevent
     messageStatus : 0                  //数字类型;消息发送状态,(android不支持)
     // messageStatus 取值范围:
     // 0,发送中
     // 1,发送失败
     // 2,发送成功
     voiceDuration : 666                 //数字类型;语音时长,messageType为 2 时才返回,(android不支持)
     isGif : false                  //布尔类型;图片是否是GIF,(android不支持) messageType为 1 时才返回
      }
  ]
}

示例代码

var udesk = api.require('udesk');
udesk.unreadMessages(function(ret) {
                       if (ret) {
                          alert(JSON.stringify(ret));
                        }
                     });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

markAllMessagesAsRead

将所有未读消息设置为已读,(android不支持此接口,打开消息界面自动标记为已读)

markAllMessagesAsRead()

示例代码

var udesk = api.require('udesk');
udesk.markAllMessagesAsRead();

可用性

iOS系统

可提供的1.0.0及更高版本

showConversation

弹出udesk联系我们页面

showConversation(params)

params

agentId:

  • 类型:字符串
  • 描述:(可选项)客服id;
  • 注意:如果agentId和groupId都有值,默认选择agentId,如果两者都不选,自动分配客服
  • 默认值:无

groupId:

  • 类型:字符串
  • 描述:(可选项)客服组id;
  • 注意:如果agentId和groupId都有值,默认选择agentId,如果两者都不选,自动分配客服
  • 默认值:无

commodity

  • 类型:JSON对象
  • 描述:(可选项) 是否带入商品信息
  • 内部字段:
commodityTitle:"nick",      // 必选项,字符串,商品标题
commoditySubTitle:"¥99.0",  // 必选项,字符串,商品副标题
commodityThumbHttpUrl:"https://img.alicdn.com/imgextra/i1/1728293990/TB2ngm0qFXXXXcOXXXXXXXXXXXX_!!1728293990.jpg_430x430q90.jpg",  //必选项,左侧图片
commodityUrl:"https://detail.tmall.com/item.htm?spm=a1z10.3746-b.w4946-14396547293.1.4PUcgZ&id=529634221064&sku_properties=-1:-1" //必选项,商品链接

示例代码

var udesk = api.require('udesk');
var params = {
             groupId : '666',
           commodity:{
                commodityTitle:"nick",
                commoditySubTitle:"¥99.0", 
                commodityThumbHttpUrl:"https://img.alicdn.com/imgextra/i1/1728293990/TB2ngm0qFXXXXcOXXXXXXXXXXXX_!!1728293990.jpg_430x430q90.jpg", 
                commodityUrl:"https://detail.tmall.com/item.htm?spm=a1z10.3746-b.w4946-14396547293.1.4PUcgZ&id=529634221064&sku_properties=-1:-1" 
                }};
udesk.showConversation(params);

补充说明

使用此方法,必须先用addUserInfo()方法。

可用性

iOS系统 Android系统(4.0及以上)

可提供的1.0.0及更高版本

showFAQSection

弹出udesk帮助中心页面

showFAQSection()

示例代码

var udesk = api.require('udesk');
udesk.showFAQSection();

补充说明

使用此方法,必须先用addUserInfo()方法。

可用性

iOS系统 Android系统(4.0及以上)

可提供的1.0.0及更高版本

component

拼接udesk组件

component({param})

params

picture:

  • 类型:布尔类型
  • 默认值:false
  • 描述:请输入true或false,用户组织udesk 发送图片组建和表情组建。

emoji:

  • 类型:布尔类型
  • 默认值:false
  • 描述:请输入true或false,用户组织udesk 发送图片组建和表情组建。

示例代码

var param = {
    picture: true,
    emoji: true
};

var udesk = api.require('udesk');
udesk.setShowPictureFunction(param);

补充说明

Android系统暂不支持

使用此模块,接口必须在showConversation(),showFAQSection()之前之前执行,如果不使用此功能则Udesk IM不支持发送图片和表情。

可用性

iOS系统

可提供的1.0.0及更高版本

addEventListener

添加获取消息的监听

注意:此接口要在initUdesk和addUserInfo调用后生效

addEventListener(callback(ret))

callback(ret)

ret

  • 类型:JSON对象
  • 描述:消息的回调
  • 内部字段:
{
        content :                   //字符串类型;消息内容
          messageId :                   //字符串类型;消息ID
          messageType : 0                  //数字类型;消息类型
     // messageType 取值范围:
     // 0,文字
     // 1,图片
     // 2,语音
     // 4,转接
     // 6,结构化消息
     // 7,离线留言
     // 8,视频
     // 10,地理位置消息
     // 11,文件类型
     // 12,udeskevent
 }

示例代码

var udesk = api.require('udesk'); 
    udesk.addEventListener(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统

可提供的1.0.0及更高版本

setLanguage

设置语言

注意:模块默认是自动识别当前系统语言,根据当前系统语言自适应语言显示(目前支持:英文、简体中文、繁体中文(台湾))。本接口应在初始化接口(initUdesk)后、弹出界面(showConversation、showFAQSection)之前调用。

setLanguage({param})

params

language:

  • 类型:字符串
  • 默认值:chinese
  • 描述:设置语言
  • 取值范围:
    • auto:根据当前系统语言自适应,目前支持英文、简体中文、繁体中文(台湾)
    • english:英文
    • chinese:简体中文

示例代码

var param = {
    language: auto
};

var udesk = api.require('udesk');
udesk.setLanguage(param);

可用性

iOS系统

可提供的1.0.4及更高版本