UIEaseCEC

来自于:APICloud立即使用

注册、登录、退出、监听

easeRegister login logout addConnectionListener addMessageListener

带 UI 的聊天对话页面

chat

消息、会话、聊天、评价、留言

sendText sendImage sendLocation sendVoice sendControl sendVisitorInfo sendVisitorTrack sendOrder loadMessageFromDB loadConversastions deleteConversation deleteMessage getMessagesCount markAllMessagesAsRead evaluation getLeaveMsgs createLeaveMsg getLeaveMsgDetail getLeaveMsgComments createLeaveMsgComment conversationId getWorkStatus

推送通知

setLocalNotification setPushOption setApnsNickname

附录

会话信息 消息内容

概述

关于环信

环信是北京易掌云峰科技有限公司旗下一家企业级服务软件提供商,环信成立于2013年4月,并于2016年荣膺“Gartner 2016 Cool Vendor”。产品有国内上线最早规模最大的即时通讯云平台——环信即时通讯云,移动端最佳实践的全媒体智能云客服平台—环信移动客服。截至2016年上半年,环信即时通讯云共服务了82149家App客户,环信移动客服共服务了29437家企业用户.

主要产品:

  1. 环信移动客服——全媒体智能云客服倡导者。
  2. 环信即时通讯云——国内最大的即时通讯云PaaS平台。
  3. 客户互动云——移动端最佳实践的全媒体智能云客服平台。

模块概览

本模块封装了环信客户互动云SDK,在注册登录类接口基础上,扩展添加了 UI 类接口,适用于对 UI 设计要求不高的项目。可直接调用相关接口弹出对话页面,真正实现了敏捷开发。

新手上路

1. 注册

3. 客户端集成(模块使用)

使用此模块之前必须先配置 config 文件,配置方法如下:

  • 名称:UIEaseCEC
  • 参数:appKey、ios_apnsCertName
  • 配置示例:
  1. <feature name="UIEaseCEC">
  2. <param name="appKey" value="1154170221178369#apicloud" />
  3. <param name="ios_apnsCertName" value="81qz3dBYB5q2nGji4IYrawr1" />
  4. <param name="tenantId" value="59105" />
  5. <param name="androidMiPushAppid" value="mipushappid" />
  6. <param name="androidMiPushAppKey" value="mipushappkey" />
  7. </feature>

在android平台需要配置(iOS平台忽略此步骤)

  1. <meta-data
  2. name="com.huawei.hms.client.appid"
  3. value="appid=10663060" />

value:为华为推送appid 在华为开发者平台获取

android平台集成发送位置功能注意事项(集成百度地图)

本模块的聊天界面有发送位置的功能,如要正常使用该功能,需要到百度地图的开发者平台注册应用,并申请appKey.并配置到config文件中。iOS平台定位功能不收本配置影响

配置示例:

  1. <feature name="bMap">
  2. <param name="android_api_key" value="WP99x2mSUWEysZxUaMh0GiGCYhBV8CQI" />
  3. <param name="ios_api_key" value="81qz3dBYB5q2nGji4IYrawr1" />
  4. </feature>

字段描述:

  1. android_api_key:android版本的apiKey
  2. ios_api_key:Ios版本的apiKey

iOS 平台推送通知功能详解

本文主要介绍了使用环信 IM 时,何时会收到远程推送、如何使用远程推送、如何获取远程推送的内容。

何时会收到远程推

环信 SDK 根据 iOS App 运行的特性,主要有以下三种运行状态:

1、 当App在前台可见的时候,SDK处于前台活跃状态,此时是使用SDK长连接(addMessageListener接口 receive事件)接收消息。

2、 当App进入后台且在2分钟之内的时候,SDK处于后台活跃状态,此时是使用SDK长连接接收消息(addMessageListener接口 receive事件)。此时收到的消息会,模块会通过弹出本地通知的形式提醒用户,用户单击通知提示会启动该App。开发者亦可通过 setLocalNotification 接口设置此时是否弹出本地通知的提示。

3、 当App进入后台超过2分,被系统挂起,此时SDK处于不活跃状态,或者是主动把App进程杀死,此时如果有新消息,是通过苹果的APNs服务进行提醒的。用户点击通知提示框,开发者可通过 api.addEventListener 监听获取推送消息,详情参考下文。当App再次启动,SDK会去服务器拉取不活跃期间的消息。

如何使用远程推送

集成推送功能流程如下文所示。此过程中涉及到的 AppID 即为 Bundle Identifie,与 APICloud 平台上的包名是同一个东西,在 APICloud 平台上应用的概览里可以查看。

  1. 登录苹果开发者中心申请推送证书,本过程操作详情参考配置环信推送证书

  2. 将上一步生成的 p12 证书上传到环信:登录环信管理后台,找到要上传证书的Appkey,点击进入详情。选择“推送证书”,然后选择“iOS”,为证书起名,并记住名称,并配置在config.xml文件中(详情参考上文config 文件配置方法)。选择上传证书,将上一步中生成的P12文件上传,并设置导出时设置的密码。选择证书类型,此处是“开发环境”(如果之前用的是production,则此处应该选择生产)。填写应用包名,应为bundle id,点击上传,完成上传证书操作。本过程操作详情参考上传环信推送证书

  3. 将 1 过程中生成的 provisioning profile 文件和证书上传 APICloud 平台,即可在 APICloud 平台云编译出 ipa 安装包并安装(正式版发布到苹果商店,通过苹果商店下载安装)

以上步骤都已经实现后,还需要使用您 App 的用户允许通知,才能收到远程推送。您可以在设备的设置应用中,查看当前App是否允许通知。

代码中如何获取远程推送的内容

点击通知栏的远程推送时,如果此时 App 已经被系统冻结,则APICloud会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:

  1. api.addEventListener({
  2. name: 'noticeclicked'
  3. }, function(ret) {
  4. if (ret && ret.value) {
  5. var type = ret.type;//0APICloud收到的推送内容,1模块开发者自定义的
  6. var result = ret.value;//推送内容
  7. }
  8. })

value数据格式如下:

  1. {
  2. localNotification”:false,//是否是本地通知,若为true则下文数据格式同addMessageListener接口监听receive事件回调的数据格式
  3. "aps":{
  4. "alert":{
  5. "body":"您有一条新消息" // 消息内容
  6. },
  7. "badge":1, // 角标数
  8. "sound":"default" // 提示音
  9. },
  10. "e":"自定义推送扩展",//自定义推送扩展
  11. "f":"6001", // 消息发送方
  12. "t":"6006", // 消息接收方
  13. "m":"373360335316321408" // 消息id
  14. "g":"1421300621769" // 群组id(如果是单聊则没有该字段)
  15. }

如果 App 当前为活跃状态且未被系统冻结(按home键2分钟内app在后台运行状态),则您可通过在 addMessageListener 接口中监听 receive 事件捕获该消息,详情参考 addMessageListener 接口说明。此时若允许本地通知,则模块会弹出本地通知的提示框,用户点击该提示框,iOS系统会启动本App,同时api.addEventListener也会受到消息。

证书到期后,要更换新的推送证书,需要在环信管理后台将旧的删除,之后重新上传,上传时的命名要与旧证书的命名一致。一个appkey下可以传多个证书,这就可以实现夸App聊天,在不同App中初始化sdk的时候,指定不同的推送证书,每个证书对应当前App的bundle id,这样,用户在登录不同的App的时候就会绑定到不同的推送证书,从而实现夸App的聊天和推送。

注意:本模块 iOS 平台上最低适配系统版本为 iOS 8.0

模块接口

easeRegister

easeRegister({params},callback(ret, err))

params

username:

  • 类型:字符串
  • 描述:用户名

password:

  • 类型:字符串
  • 描述:密码

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否注册成功,true|false
  3. }

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.easeRegister({
  3. username: '',
  4. password: ''
  5. },function(ret, err) {
  6. if (ret.status) {
  7. api.alert({ msg:'注册成功'});
  8. } else {
  9. api.alert({ msg:JSON.stringify(err)});
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

login

登录接口

login({params},callback(ret, err))

params

username:

  • 类型:字符串
  • 描述:用户名

password:

  • 类型:字符串
  • 描述:密码

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:登录结果
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否登录成功,true|false
  3. }

err:

  • 类型:JSON 对象
  • 描述:登录结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.login({
  3. username: '',
  4. password: ''
  5. },function(ret, err) {
  6. if (ret.status) {
  7. api.alert({ msg:'登录成功'});
  8. } else {
  9. api.alert({ msg:JSON.stringify(err)});
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

logout

退出登录

logout({params},callback(ret, err))

params

bIsUnbindDeviceToken:

  • 类型:布尔类型
  • 描述:是否解除device token的绑定,解除绑定后设备不会再收到消息推送,如果传入YES, 解除绑定失败,将返回err
  • 默认:true

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否成功退出登录,true|false
  3. }

err:

  • 类型:JSON 对象
  • 描述:退出登录失败结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.logout(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg:'退出登录成功'});
  5. } else {
  6. api.alert({ msg:JSON.stringify(err)});
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

addConnectionListener

添加网络监听,可以显示当前是否连接服务器

有以下几种情况, 会引起该方法的调用:

    1. 登录成功后, 手机无法上网时, 会调用该回调
    1. 登录成功后, 网络状态变化时, 会调用该回调
    1. 当前登录账号已经被从服务器端删除时会收到该回调
    1. 当前登录账号在其它设备登录时会接收到此回调

addConnectionListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. state: 'connected' //字符串类型;网络连接状态,取值范围如下:
  3. //connected:已连接
  4. //disconnected:未连接
  5. //accountDidRemove:当前登录账号已经被从服务器端删除
  6. //accountDidLoginFromOtherDevice:当前登录账号在其它设备登录
  7. //userDidForbidByServer:服务被禁用
  8. //userAccountDidForcedToLogout:当前登录账号被强制退出时会收到该回调,有以下原因:1.密码被修改 2.登陆设备数过多;
  9. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.addConnectionListener(function(ret) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addMessageListener

添加消息相关事件监听

addMessageListener({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:要监听的消息相关事件名称
  • 默认:receive
  • 取值范围:
    • receive:消息的监听
    • cmdReceive:cmd消息的监听
    • msgChange:消息状态发生变化的监听
    • msgDidRecall:收到消息撤回的监听 (仅ios支持)
    • msgAttachmentStatus:消息附件状态发生改变的监听(仅ios支持)
    • waitCount:待接入排队人数的监听(仅ios支持)
    • agentInput:坐席输入状态变化的监听(仅ios支持)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. messages: [] //数组类型;仅当 name 为 receive 时本参数有值,消息组成的数组,消息详情参考附录:消息内容
  3. cmdMessages: [] //数组类型;仅当 name 为 cmdReceive 时本参数有值,cmd消息组成的数组,消息详情参考附录:消息内容
  4. recallMessageIds:[] //数组类型;仅当 name 为 msgDidRecall 时本参数有值,撤回消息的数组
  5. message:{} //字符;仅当 name 为 msgChange 时本参数有值,发生变化的消息,消息详情参考附录:消息内容
  6. attachmentMessage:{} //字符;仅当 name 为 msgAttachmentStatus 时本参数有值,发生变化的消息,消息详情参考附录:消息内容
  7. waitCount: //字符;仅当 name 为 waitCount 时本参数有值,待接入排队人数
  8. agentInput:'' //字符;仅当 name 为 agentInput 时本参数有值,坐席输入状态变化内容
  9. isPushMsg: false //布尔类型;仅当 name 非 receive 时本参数有值。表示是否是远程推送而来的消息,本参数仅在iOS平台有效
  10. }

err:

  • 类型:JSON 对象
  • 描述:消息/消息附件状态发送改变时的错误信息,仅当 name 为msgChange 或 msgAttachmentChange 时本参数有值
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.addMessageListener({
  3. name: 'receive'
  4. }, function(ret) {
  5. if (ret.messages) {
  6. api.alert({msg:JSON.stringify(ret.messages)});
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

chat

根据IM服务号创建并打开聊天页面

chat({params})

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

navigationBar:

  • 类型:JSON 对象
  • 描述:导航条样式配置
  • 内部字段:
  1. {
  2. titleColor: '#fff', //字符串类型;标题文字颜色;默认:#000
  3. bgColor: '#d6d6d6', //字符串类型;导航条背景色;默认:#d1d1d1
  4. btnColor: '#fff', //字符串类型;导航条按钮色;默认:#fff(android不支持此参数)
  5. navigationBarBg:'' //字符串类型;导航条背景图片;如果此参数有值,将忽略bgColor;默认值:无
  6. }

avatar:

  • 类型:JSON 对象
  • 描述:头像样式配置
  • 内部字段:
  1. {
  2. local:'', //(可选项)字符串类型;单聊时用户头像地址,要求本地路径(fs://,widget://)
  3. remote:'' //(可选项)字符串类型;单聊时对方的用户头像地址,要求本地路径(fs://,widget://)
  4. }

nickname:

  • 类型:JSON 对象
  • 描述:(可选项)各成员昵称信息,以username为key,昵称为value的JSON对象
  • 内部字段:
  1. {
  2. local:'nickname',
  3. remote:'nickname'
  4. }

Info:

  • 类型:JSON 对象
  • 描述:(可选项)商品信息;进入聊天页面后会主动生成此商品信息
  • 内部字段:
  1. {
  2. title:'', //标题
  3. orderTitle:'', //订单标题;仅type为order时有效
  4. price:'nickname', //价格
  5. desc:'nickname', //名称
  6. imageUrl:'', //图片的URL,不支持本地路径
  7. itemUrl:'', //商品的URL链接
  8. type:'order' //发送商品的类型;取值如下:
  9. // order:订单,自动发送
  10. // track:商品不自动发送,点击发送按钮后发送
  11. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.chat({
  3. conversationId: '123',
  4. text: {
  5. size: 15,
  6. color: '#000'
  7. },
  8. avatar: {
  9. size: 40,
  10. corner: 20
  11. },
  12. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendText

发送文本消息

sendText({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

text:

  • 类型:字符串
  • 描述:发送的消息

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否发送成功,true|false
  3. message: {} //JSON 对象;发送的消息,详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.sendText({
  3. conversationId: '',
  4. text: 'APICloud hello',
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendImage

发送图片消息

sendImage({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

path:

  • 类型:字符串
  • 描述:要发送的图片的路径,要求本地路径(fs://、widget://)

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否发送成功,true|false
  3. message: {} //JSON 对象;发送的消息,详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.sendImage({
  3. conversationId: '',
  4. path: 'widget://res/abc.png',
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendLocation

发送位置消息

sendLocation({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

address:

  • 类型:字符串
  • 描述:要发送的地址

latitude:

  • 类型:数字
  • 描述:纬度

longitude:

  • 类型:数字
  • 描述:经度

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否发送成功,true|false
  3. message: {} //JSON 对象;发送的消息,详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.sendLocation({
  3. conversationId: '',
  4. address: '北京市天安门',
  5. latitude: ,
  6. longitude: ,
  7. },function(ret,err) {
  8. if(ret.status)
  9. api.alert({ msg:JSON.stringify(ret)});
  10. else
  11. api.alert({ msg:JSON.stringify(err)});
  12. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendVoice

发送声音消息

sendVoice({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

path:

  • 类型:字符串
  • 描述:要发送的音频的路径,要求本地路径(fs://、widget://)

length:

  • 类型:数字
  • 描述:录音时间(秒)

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否发送成功,true|false
  3. message: {} //JSON 对象;发送的消息,详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.sendVoice({
  3. conversationId:'',
  4. path: 'widget://res/abc.mp3',
  5. length:6
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendControl

发送透传消息

sendControl({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

action:

  • 类型:字符串
  • 描述:命令命令内容

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否发送成功,true|false
  3. message: {} //JSON 对象;发送的消息,详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.sendControl({
  3. conversationId: '',
  4. action:'',
  5. ext: {}
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendVisitorInfo

发送访客信息

sendVisitorInfo({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

info:

  • 类型:JSON 对象
  • 描述:访客信息
  • 内部字段:
  1. {
  2. name:'', //名字
  3. qq:'', //qq
  4. phone:'', //电话
  5. companyName:'', //公司
  6. nickName:'', //昵称
  7. email:'', //邮箱
  8. desc:'order'
  9. }

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否发送成功,true|false
  3. message: {} //JSON 对象;发送的消息,详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.sendVisitorInfo({
  3. conversationId: '',
  4. info{},
  5. ext: {}
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendVisitorTrack

发送轨迹消息

sendVisitorTrack({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

info:

  • 类型:JSON 对象
  • 描述:商品信息
  • 内部字段:
  1. {
  2. title:'', //标题
  3. price:'nickname', //价格
  4. desc:'nickname', //名称
  5. imageUrl:'', //图片的URL,不支持本地路径
  6. itemUrl:'', //商品的URL链接
  7. }

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否发送成功,true|false
  3. message: {} //JSON 对象;发送的消息,详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.sendVisitorTrack({
  3. conversationId: '',
  4. info{},
  5. ext: {}
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendOrder

发送订单消息

sendOrder({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

info:

  • 类型:JSON 对象
  • 描述:商品信息
  • 内部字段:
  1. {
  2. title:'', //标题
  3. orderTitle:'', //订单标题
  4. price:'nickname', //价格
  5. desc:'nickname', //名称
  6. imageUrl:'', //图片的URL,不支持本地路径
  7. itemUrl:'', //商品的URL链接
  8. }

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否发送成功,true|false
  3. message: {} //JSON 对象;发送的消息,详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.sendOrder({
  3. conversationId: '',
  4. info{},
  5. ext: {}
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

loadMessageFromDB

从数据库中获取消息,获取到的消息是startMsgId之前或者之后的pagesize条消息;(仅ios支持)

loadMessageFromDB({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

startMsgId:

  • 类型:字符串
  • 描述:(可选项)消息id,如果不写此项,从数据库中读取最新的记录

count:

  • 类型:数字
  • 描述:(可选项) 获取条数
  • 默认值:10

direction:

  • 类型:数字
  • 描述:(可选项) 搜索方向;0:向上搜索,1:向下搜索
  • 默认值:0

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true //布尔类型;是否成功
  3. messages: [] //数组对象;返回会话信息,详细内容参考附件:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.loadMessageFromDB({
  3. conversationId: '',
  4. },function(ret) {
  5. if(ret.status)
  6. api.alert({ msg:JSON.stringify(ret)});
  7. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

loadConversastions

获取所有会话

loadConversastions(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;是否成功
  3. conversastions: [] //数组对象;返回会话信息,详细内容参考附件:会话信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.loadConversastions(function(ret) {
  3. if(ret.status)
  4. api.alert({ msg:JSON.stringify(ret)});
  5. });

可用性

android系统

可提供的 1.0.0 及更高版本

deleteConversation

删除一条会话

deleteConversation({params})

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

isMessage:

  • 类型:布尔
  • 描述:(可选项)是否删除相关的消息
  • 默认:true

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.deleteConversation({
  3. conversationId: '',
  4. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

deleteMessage

删除消息记录

deleteMessage({params})

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

messageId:

  • 类型:字符串
  • 描述:(可选项)消息id,不传则删除全部聊天记录

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.deleteMessage({
  3. conversationId: '',
  4. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getMessagesCount

获取会话未读消息数

getMessagesCount({params},callback(ret))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. count: //数字;未读消息数
  3. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC. getMessagesCount({
  3. conversationId:''
  4. },function(ret) {
  5. if(ret.status)
  6. api.alert({ msg:JSON.stringify(ret)});
  7. });

可用性

android系统

可提供的 1.0.0 及更高版本

markAllMessagesAsRead

未读消息数清零

markAllMessagesAsRead({params})

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.markAllMessagesAsRead({
  3. conversationId:''
  4. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

evaluation

评价会话

evaluation({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

text:

  • 类型:字符串
  • 描述:(可选项)评价内容

score:

  • 类型:数字
  • 描述:(可选项)评分;0 - 5分;大于5按照5处理,小于0按照0处理
  • 默认:5

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true //布尔;评价结果
  3. message: {} //JSON 对象;评价的消息,详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.evaluation({
  3. conversationId:'',
  4. text''
  5. },function(ret) {
  6. if(ret.status)
  7. api.alert('成功');
  8. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getLeaveMsgs

获取所有留言

getLeaveMsgs({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

page:

  • 类型:数字
  • 描述:(可选项)第几页,从0开始,默认为第0页
  • 默认:0

pageSize:

  • 类型:数字
  • 描述:(可选项)每一页的大小,默认为10,最大不能超过100
  • 默认:10

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. first:1, //布尔类型;是否是第一页
  3. last:1, //布尔类型;是否是最后一页
  4. number:1, //数字类型;当前页数
  5. numberOfElements:1, //数字类型;当前页留言数量
  6. size:1, //数字类型;每一页数量
  7. totalElements:1, //数字类型;留言总数量
  8. totalPages:1, //数字类型;总页数
  9. entities:[{
  10. content:'', //字符类型;留言内容
  11. created_at:'', //字符类型;创建时间
  12. id:666666, //数字类型;ID
  13. origin_type:'', //字符类型;来源类型
  14. subject:'', //字符类型;主题
  15. updated_at:'', //字符类型;来更新时间
  16. version:0, //数字类型;版本
  17. creator:{
  18. id:'', //字符类型;字符类型;ID
  19. name:'', //字符类型;名字
  20. type:'', //字符类型;类型
  21. username:'', //字符类型;名字
  22. },
  23. status:{ //JSON 对象;状态
  24. code:'',
  25. name:'',
  26. id:'',
  27. version:'',
  28. }
  29. }]
  30. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.getLeaveMsgs({
  3. conversationId:'',
  4. projectId:''
  5. },function(ret) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

createLeaveMsg

创建新留言

createLeaveMsg({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

Info:

  • 类型:JSON 对象
  • 描述:创建者信息(仅ios支持)
  • 内部字段:
  1. {
  2. name:'', //名字
  3. qq:'', //qq
  4. phone:'', //电话
  5. companyName:'', //公司
  6. avatar:'', //头像地址
  7. email:'', //邮箱
  8. desc:'order'
  9. }

Leave:

  • 类型:JSON 对象
  • 描述:(可选项)留言
  • 内部字段:
  1. {
  2. subject:'', //主题
  3. content:'', //内容
  4. }

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true //布尔;是否创建成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.createLeaveMsg({
  3. conversationId:'',
  4. projectId:'',
  5. Info:{
  6. name:'', //名字
  7. qq:'', //qq
  8. phone:'', //电话
  9. companyName:'', //公司
  10. avatar:'', //头像地址
  11. email:'', //邮箱
  12. desc:'order'
  13. },
  14. Leave:{
  15. subject:'', //主题
  16. content:'', //内容
  17. }
  18. },function(ret) {
  19. if(ret.status)
  20. api.alert({ msg:JSON.stringify(ret)});
  21. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getLeaveMsgDetail

获取留言详情

getLeaveMsgDetail({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:(必选项)会话的id,若创建时可不传此参数

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

tickedId:

  • 类型:字符串
  • 描述:留言ID

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. content:'', //字符类型;留言内容
  3. created_at:'', //字符类型;创建时间
  4. id:666666, //数字类型;ID
  5. origin_type:'', //字符类型;来源类型
  6. subject:'', //字符类型;主题
  7. updated_at:'', //字符类型;来更新时间
  8. version:, //数字类型;版本
  9. creator:{
  10. id:'', //字符类型;字符类型;ID
  11. name:'', //字符类型;名字
  12. type:'', //字符类型;类型
  13. username:'', //字符类型;名字
  14. },
  15. status:{ //JSON 对象;状态
  16. code:'',
  17. name:'',
  18. id:'',
  19. version:'',
  20. },
  21. assignee:{ //JSON 对象;受理人信息
  22. agentNumber:'',
  23. avatar:'',
  24. id:'',
  25. name:'',
  26. phone:'',
  27. type:'',
  28. username:'',
  29. }
  30. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.getLeaveMsgDetail({
  3. conversationId:'',
  4. tickedId:'',
  5. projectId:''
  6. },function(ret) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getLeaveMsgComments

获取一个留言的所有评论

getLeaveMsgComments({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:(必选项)会话的id,若创建时可不传此参数

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

tickedId:

  • 类型:字符串
  • 描述:留言ID

page:

  • 类型:数字
  • 描述:(可选项)第几页,从0开始,默认为第0页
  • 默认:0

pageSize:

  • 类型:数字
  • 描述:(可选项)每一页的大小,默认为10,最大不能超过100
  • 默认:10

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. first:1, //布尔类型;是否是第一页
  3. last:1, //布尔类型;是否是最后一页
  4. number:1, //数字类型;当前页数
  5. numberOfElements:1, //数字类型;当前页留言数量
  6. size:1, //数字类型;每一页数量
  7. totalElements:1, //数字类型;评论总数量
  8. totalPages:1, //数字类型;总页数
  9. entities:[{
  10. content:'', //字符类型;评论内容
  11. created_at:'', //字符类型;创建时间
  12. id:666666, //数字类型;ID
  13. subject:'', //字符类型;主题
  14. updated_at:'', //字符类型;来更新时间
  15. version:0, //数字类型;版本
  16. creator:{
  17. id:'', //字符类型;字符类型;ID
  18. name:'', //字符类型;名字
  19. type:'', //字符类型;类型
  20. username:'', //字符类型;用户名
  21. agentNumber:'',
  22. phone:'',
  23. avatar:'',
  24. },
  25. attachments:{ //JSON 对象;附件信息
  26. name:'',
  27. type:'',
  28. url:'',
  29. }
  30. }]
  31. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.getLeaveMsgComments({
  3. conversationId:'',
  4. projectId:'',
  5. tickedId:''
  6. },function(ret) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

createLeaveMsgComment

给一个留言添加评论

createLeaveMsgComment({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:(必选项)会话的id,若创建时可不传此参数

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

Info:

  • 类型:JSON 对象
  • 描述:创建者信息
  • 内部字段:
  1. {
  2. name:'', //名字
  3. qq:'', //qq
  4. phone:'', //电话
  5. companyName:'', //公司
  6. avatar:'', //头像地址
  7. email:'', //邮箱
  8. desc:'order'
  9. }

Leave:

  • 类型:JSON 对象
  • 描述:(可选项)留言
  • 内部字段:
  1. {
  2. subject:'', //主题
  3. content:'', //内容
  4. replyId:'' //回复那条评论的id
  5. }

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true //布尔;是否创建成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.createLeaveMsgComment({
  3. conversationId:'',
  4. projectId:'',
  5. {
  6. name:'', //名字
  7. qq:'', //qq
  8. phone:'', //电话
  9. companyName:'', //公司
  10. avatar:'', //头像地址
  11. email:'', //邮箱
  12. desc:'order'
  13. },
  14. {
  15. subject:'', //主题
  16. content:'', //内容
  17. }
  18. },function(ret) {
  19. if(ret.status)
  20. api.alert({ msg:JSON.stringify(ret)});
  21. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getWorkStatus

获取工作状态

getWorkStatus({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:(必选项)会话的id,若创建时可不传此参数

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true //布尔;是否获取成功
  3. isWork:true //布尔;是否工作中
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.getWorkStatus({
  3. conversationId:''
  4. },function(ret) {
  5. if(ret.status)
  6. api.alert({ msg:JSON.stringify(ret)});
  7. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setLocalNotification

开启关闭本地通知

开启本地通知后,app在后台运行时通过长连接收到消息时会弹出提示。此时用户点击提示后,iOS系统会启动app,开发者可在api.addEventListener接口获取消息内容,详情参考概述。

setLocalNotification({params})

params

enable:

  • 类型:字符串
  • 描述:(可选项)是否开启本地通知
  • 默认:true

title:

  • 类型:字符串
  • 描述:(可选项)本地推送提示语
  • 默认:您有一条新的消息

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.setLocalNotification({
  3. enable: true,
  4. title: '您有一条新的消息'
  5. });

可用性

iOS系统

可提供的 1.0.0及更高版本

setPushOption

设置推送全局属性

setPushOption({params},callback(ret))

params

displayName:

  • 类型:字符串
  • 描述:(可选项)推送消息显示的昵称,不传则不设置

displayStyle:

  • 类型:字符串
  • 描述:(可选项)推送消息显示的类型
  • 默认:simpleBanner
  • 取值范围:
    • simpleBanner:简单显示”您有一条新消息”
    • messageSummary:显示消息内容

noDisturbStatus:

  • 类型:字符串
  • 描述:(可选项)消息推送的免打扰设置
  • 默认:close
  • 取值范围:
    • custom:自定义时间段免打扰
    • day:全天免打扰
    • close:关闭免打扰

noDisturbingStartH:

  • 类型:数字
  • 描述:(可选项)消息推送免打扰开始时间,小时,暂时只支持整点(小时),不传则不设置

noDisturbingEndH:

  • 类型:数字
  • 描述:(可选项)消息推送免打扰结束时间,小时,暂时只支持整点(小时),不传则不设置

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否设置成功,true|false
  3. }

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.setPushOption({
  3. displayName: '',
  4. displayStyle: '',
  5. noDisturbStatus:'',
  6. noDisturbingStartH:,
  7. noDisturbingEndH:
  8. },function(ret, err) {
  9. if (ret.status) {
  10. api.alert({ msg:'设置'});
  11. } else {
  12. api.alert({ msg:JSON.stringify(err)});
  13. }
  14. });

可用性

iOS系统

可提供的 1.0.0及更高版本

setApnsNickname

设置推送昵称

setApnsNickname({params},callback(ret))

params

nickname:

  • 类型:字符串
  • 描述:推送消息显示的昵称

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否设置成功,true|false
  3. }

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var UIEaseCEC = api.require('UIEaseCEC');
  2. UIEaseCEC.setApnsNickname({
  3. nickname: ''
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:'设置'});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS系统

可提供的 1.0.0及更高版本

附录

消息内容-IOS

  • 类型:JSON 对象
  • 描述:消息内容(仅ios支持)
  • 内部字段:
  1. {
  2. messageId:'' //消息ID
  3. conversationId: 'cmd', //所属会话的唯一标识符
  4. direction:'', //消息方向
  5. //取值如下:
  6. //send:发送
  7. //receive:接受
  8. from: '', //消息的发送方
  9. to: '', //消息的接收方
  10. messageTime: , //时间戳,服务器收到此消息的时间
  11. messageStatus:'', //消息状态
  12. //取值如下:
  13. //pending:发送未开始
  14. //delivering:正在发送
  15. //successed:发送成功
  16. //failed:发送失败
  17. ext:{}, //扩展消息,由用户自定义
  18. body: {} //JSON 对象;消息体(消息包含的内容),,详情参考附录:消息体内容
  19. }

消息内容-Android

  • 类型:JSON 对象
  • 描述:消息内容(仅android支持)
  • 内部字段:
  1. {
  2. "attributes": {
  3. "weichat": {
  4. "nameValuePairs": {
  5. "msg_id_for_ack": "14b4390f-6391-4feb-9d9c-5167a5cd5fe8"
  6. },
  7. "extern":"" //扩展消息,由用户自定义
  8. }
  9. },
  10. "body": { //JSON 对象;消息体(消息包含的内容),,详情参考附录:消息体内容
  11. "emaObject": {
  12. "type": 0, //消息体类型;0/文字,1/图片,2/视频,3/位置,4/语音,5/文件,6/命令消息
  13. "nativeHandler": -1047580424
  14. }
  15. },
  16. "direct": "SEND", //消息方向; 取值范围:send/发送,receive/收到
  17. "error": 0, //错误码
  18. "from": "user1", //用户
  19. "imMsgId": "550818067349772788",
  20. "isAcked": false,
  21. "isDelivered": false, //是否被收到
  22. "isListened": false, //是否被监听
  23. "kefuReceived": false, //是否收到
  24. "msgId": "14b4390f-6391-4feb-9d9c-5167a5cd5fe8", ///消息id(每条消息都会生成唯一的一个id)
  25. "msgTime": 1545812125166, //发送时间
  26. "status": "SUCCESS", //发送是否成功
  27. "to": "kefuchannelimid_969138", //客服 服务号
  28. "type": "TXT" //发送内容
  29. }

消息体内容

  • 类型:JSON 对象
  • 描述:消息体包含的内容及其相关信息(仅IOS支持)
  • 内部字段:
  1. {
  2. type: '', //字符串类型;消息体的类型,取值范围如下:
  3. //text:文本类型
  4. //image:图片类型
  5. //video:视频类型
  6. //location:位置类型
  7. //voice:语音类型
  8. //file:文件类型
  9. //cmd:命令类型
  10. ...: ... //消息体除type外的其它内容,详情参考附录:消息体-文本、图片、视频、位置、语音、文件、命令
  11. }

消息体-文本

  • 类型:JSON 对象
  • 描述:文本类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'text',
  3. text: '' //字符串类型;文本内容
  4. }

消息体-图片

  • 类型:JSON 对象
  • 描述:图片类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'image',
  3. displayName: '', //字符串类型;附件的显示名
  4. localPath: '', //字符串类型;附件的本地路径
  5. remotePath: '', //字符串类型;附件在服务器上的路径
  6. secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
  7. fileLength: , //数字类型;附件的大小, 以字节为单位
  8. downloadStatus: '', //字符串类型;附件的下载状态,取值范围如下:
  9. //downloading:正在下载
  10. //successed:下载成功
  11. //failed:下载失败
  12. //pending:准备下载
  13. thumbnailDownloadStatus: '',//字符串类型;缩略图下载状态,取值范围如下:
  14. //downloading:正在下载
  15. //successed:下载成功
  16. //failed:下载失败
  17. //pending:准备下载
  18. size: { // JSON 对象;图片大小
  19. width: , //数字类型;图片的宽
  20. height: //数字类型;图片的高
  21. },
  22. compressionRatio: , //数字类型;设置发送图片消息时的压缩率,1.0时不压缩,默认值是0.6,如果设置了小于等于0的值,则使用默认值
  23. thumbnailDisplayName: '', //字符串类型;缩略图的显示名
  24. thumbnailLocalPath: '', //字符串类型;缩略图的本地路径
  25. thumbnailRemotePath: '', //字符串类型;缩略图在服务器的路径
  26. thumbnailSecretKey: '', //字符串类型;缩略图的密钥, 下载缩略图时需要密匙做校验
  27. thumbnailSize: { // JSON 对象;缩略图片大小
  28. width: , //数字类型;图片的宽
  29. height: //数字类型;图片的高
  30. },
  31. thumbnailFileLength: //数字类型;缩略图文件的大小, 以字节为单位
  32. }

消息体-视频

  • 类型:JSON 对象
  • 描述:视频类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'video',
  3. duration: '', //数字类型;视频时长, 秒为单位
  4. displayName: '', //字符串类型;附件的显示名
  5. localPath: '', //字符串类型;附件的本地路径
  6. remotePath: '', //字符串类型;附件在服务器上的路径
  7. secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
  8. fileLength: , //数字类型;附件的大小, 以字节为单位
  9. downloadStatus: '', //字符串类型;附件的下载状态,取值范围如下:
  10. //downloading:正在下载
  11. //successed:下载成功
  12. //failed:下载失败
  13. //pending:准备下载
  14. thumbnailLocalPath: '', //字符串类型;缩略图的本地路径
  15. thumbnailRemotePath: '', //字符串类型;缩略图在服务器的路径
  16. thumbnailSecretKey: '', //字符串类型;缩略图的密钥, 下载缩略图时需要密匙做校验
  17. thumbnailSize: { // JSON 对象;缩略图片大小
  18. width: , //数字类型;图片的宽
  19. height: //数字类型;图片的高
  20. },
  21. thumbnailDownloadStatus: '',//字符串类型;缩略图下载状态,取值范围如下:
  22. //downloading:正在下载
  23. //successed:下载成功
  24. //failed:下载失败
  25. //pending:准备下载
  26. }

消息体-位置

  • 类型:JSON 对象
  • 描述:位置类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'location',
  3. address: '', //字符串类型;地址信息
  4. latitude: , //数字类型;纬度
  5. longitude: //数字类型;经度
  6. }

消息体-语音

  • 类型:JSON 对象
  • 描述:语音类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'voice',
  3. duration: '', //数字类型;语音时长, 秒为单位
  4. displayName: '', //字符串类型;附件的显示名
  5. localPath: '', //字符串类型;附件的本地路径
  6. remotePath: '', //字符串类型;附件在服务器上的路径
  7. secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
  8. fileLength: , //数字类型;附件的大小, 以字节为单位
  9. downloadStatus: '' //字符串类型;附件的下载状态,取值范围如下:
  10. //downloading:正在下载
  11. //successed:下载成功
  12. //failed:下载失败
  13. //pending:准备下载
  14. }

消息体-文件

  • 类型:JSON 对象
  • 描述:文本类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'file',
  3. displayName: '', //字符串类型;附件的显示名
  4. localPath: '', //字符串类型;附件的本地路径
  5. remotePath: '', //字符串类型;附件在服务器上的路径
  6. secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
  7. fileLength: , //数字类型;附件的大小, 以字节为单位
  8. downloadStatus: '' //字符串类型;附件的下载状态,取值范围如下:
  9. //downloading:正在下载
  10. //successed:下载成功
  11. //failed:下载失败
  12. //pending:准备下载
  13. }

消息体-命令

  • 类型:JSON 对象
  • 描述:命令类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'cmd',
  3. action: '', //字符串类型;命令内容
  4. }

会话信息-ios

  • 类型:JSON 对象
  • 描述:命令类型的消息体内容(仅ios支持)
  • 内部字段:
  1. {
  2. conversationId: 'cmd', //会话唯一标识
  3. unreadMessagesCount:6, //会话未读消息数量
  4. latestMessage:{} //会话最新一条消息;内容参考消息信息
  5. }

会话信息-Android

  • 类型:JSON 对象
  • 描述:命令类型的消息体内容(仅android支持)
  • 内部字段:
  1. [
  2. {
  3. "conversationId": "", //字符串类型;服务号
  4. "messages": [] , //JSON数组;每条消息内容,详情可查看消息内容
  5. "msgCount": , //数字类型;消息总数
  6. "unreadMsgCount": //数字类型;未读消息数
  7. "mOfficialAccount":{ //JSON对象类型;客服账号信息
  8. id”:"", //字符串类型;账号id
  9. "name":"", //字符串类型;name
  10. "type":"" //字符串类型;类型
  11. }
  12. },
  13. ]