meiQia

来自于:美洽立即使用

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

注意:本模块最低支持 iOS 6.0,Android 2.3

美洽是一款实现手机用户与企业保持随时随刻沟通的客服工具。本模块封装了美洽的相关接口。使用此模块之前需要先注册美洽获取 appkey。

图片说明

Appkey获取方法

使用管理员权限账号登陆美洽,在 设置 --> SDK 页面中,选择 添加 App 配置 ,根据提示配置 App 信息,然后添加 APP 即可得到 appkey 用于配置。

开源地址

模块源代码和集成Demo: https://github.com/Meiqia/MeiQia_For_APICloud

模块中的美洽UI源代码: https://github.com/Meiqia/MeiqiaSDK-iOS https://github.com/Meiqia/MeiqiaSDK-Android

initMeiQia

初始化美洽

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

params

appkey:

  • 类型:字符串
  • 描述:注册美洽后,从美洽后台获得的 appkey

callback:

  • 类型:方法
  • 描述:初始化成功将返回顾客ID(ClientId),初始化失败将返回错误描述

示例代码

//创建美洽
var mq = api.require('meiQia');
//配置初始化美洽需要的appkey
var param = {
    appkey: "33c19c19bd858746b878fcc93166f2e5"
};
//初始化美洽
mq.initMeiQia(param, function(ret, err) {
    if (ret) {
        //初始化成功
        alert(JSON.stringify(ret));
    } else {
        //初始化失败
        alert(JSON.stringify(err));
    }
})

补充说明

必须在初始化后才能正常使用此模块的其他方法,所以建议将初始化放在App启动时执行。美洽模块只需要初始化一次。

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setTitleColor

设置美洽聊天界面的标题栏中文字的颜色 setTitleColor({params})

params

color:

  • 类型:字符串
  • 描述:#FFFFFF格式的HTML颜色

示例代码

var mq = api.require('meiQia');
//设置title以及按钮颜色
var titleColor = {
    color: "#ffffff"
};
mq.setTitleColor(titleColor);

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setTitleBarColor

设置美洽聊天界面的标题栏背景颜色 setTitleBarColor({params})

params

color:

  • 类型:字符串
  • 描述:#FFFFFF格式的HTML颜色

示例代码

var mq = api.require('meiQia');
//设置标题栏背景颜色
var titleBarColor = {
    color: "#00ff00"
};
mq.setTitleBarColor(titleBarColor);

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

show

弹出美洽聊天界面

show()

示例代码

var mq = api.require('meiQia');
mq.show();

补充说明

如果需要指定客服setScheduledAgentOrAgentGroup()、添加自定义信息setClientInfo()、设置美洽顾客IDsetLoginMQClientId()或设置自定义IDsetLoginCustomizedId(),需要在show()前执行,否则无效。

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setScheduledAgentOrAgentGroup

指定分配客服与客服组

setScheduledAgentOrAgentGroup({params})

params

agentId:

  • 类型:字符串
  • 描述:在美洽系统中客服对应的ID

agentGroup:

  • 类型:字符串
  • 描述:在美洽系统中客服组对应的ID

scheduleRule:

  • 类型:字符串
  • 默认值:enterprise
  • 描述:
    • none:不转接给任何人,让用户留言
    • group: 转接给组内的人
    • enterprise: 转接给企业其他随机一个人

示例代码

var mq = api.require('meiQia');
//设置指定分配给某客服,并且如果客服不在线,则留言而不转接给其他客服
var scheduleParam = {
    agentId: "ed55383a0fa82bbe8242ee16477c9ac3",
    scheduleRule: "none"
};
mq.setScheduledAgentOrAgentGroup(scheduleParam);

补充说明

agentId和agentGroup可只传其中一个,也可同时都传。美洽系统将优先分配指定客服,如果客服不在线,则分配到指定的客服组,如果客服组也无人在线,则分配到全部客服。如果使用该接口,那么需要在show之前调用

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setClientInfo

效果图:

效果图

添加规范化用户信息

setClientInfo({params})

params

默认参数 描述
avatar 头像 URL
address 地址
age 年龄
comment 备注
email 邮箱
gender 性别
name 名字
qq QQ
tel 电话
weibo 微博
weixin 微信
source 顾客来源
tags 标签,数组形式。且必须是企业中已经存在的标签

示例代码

var mq = api.require('meiQia');
//设置用户信息
var infoParam = {
    email: "dev@meiqia.com",
    comment: "这是备注",
    avatar: "https://app.meiqia.com/images/logo.png",
    tags: ["付费用户", "使用疑问"]
};
mq.setClientInfo(infoParam);

补充说明

自定义用户信息将会被传送到美洽服务端,用于对话时显示给客服人员一作参考。这些参数都是可选的,可以选择其中的一个或者多个传递。此接口必须在show之前执行。

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setLoginMQClientId

设置美洽顾客的 id 后,该id对应的顾客将会上线。设置后可实现消息漫游。 setLoginMQClientId({params})

params

id:

  • 类型:字符串
  • 描述:美洽的ClientID。会在成功初始化美洽后返回

示例代码

var mq = api.require('meiQia');
//设置美洽ID
var clientIdParam = {
    id: "9f0b2d3339edeec591a6e3be5dbafd64",
};
mq.setLoginMQClientId(clientIdParam);

补充说明

如果美洽服务端没有找到该顾客 id 对应的顾客,则会返回该顾客不存在的错误。

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setLoginCustomizedId

使用该接口,可让美洽绑定开发者的用户系统和美洽的顾客系统。 设置开发者自定义 id 后,将会以该自定义 id 对应的顾客上线。设置后可实现消息漫游。

setLoginCustomizedId({params})

params

id:

  • 类型:字符串
  • 描述:开发者自定义的用户ID。尽量避免使用\、<、>、?、@等符号作为ID

示例代码

var mq = api.require('meiQia');
//设置自定义用户Id
var customizedIdParam = {
    id: "id00001",
};
mq.setLoginCustomizedId(customizedIdParam);

补充说明

注意,如果美洽服务端没有找到该自定义 id 对应的顾客,则美洽将会自动关联该 id 与 SDK 当前的顾客。 如果开发者的自定义 id 是自增长,美洽建议开发者服务端保存美洽顾客 id,登陆时 设置登录客服的顾客 id,否则非常容易受到中间人攻击。

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setNavRightButton

使用该接口,用于自定义聊天界面中右上角的按钮。

params

title:

  • 类型:字符串
  • 描述:自定义按钮的文字标题

image:

  • 类型:字符串
  • 描述:自定义按钮的图标,(Android 仅支持网络图片,iOS支持网络图片,fs://, widget:// 路径协议)

callback

点击按钮后的回调事件

示例代码

var mq = api.require("meiQia");
mq.setNavRightButton({
    title:"返回",
    image:'widget://res/back.png'
}, function(){
    alert("right button tapped")
});

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

getUnreadMessageCount

使用该接口获取未读消息的数目

getUnreadMessageCount(callback(ret));

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:获取到的未读消息
  • 内部字段:
{
    count:2      //数字类型;未读数据条数
}

示例代码

var mq = api.require("meiQia");
mq.getUnreadMessageCount(function(ret) {
    api.alert({msg:JSON.stringify(ret)});
}

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setPreSendTextMessage

设置预发送消息,该消息将会在用户上线之后自动发送给客服,可以用于标记客户当前正在浏览的内容等客服需要了解的信息。

setPreSendTextMessage({params});

params

message:

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

示例代码

var mq = api.require("meiQia");
mq.setPreSendTextMessage({
   message:"This is the presend message, you can put your product here to indicate to agent that the client is browsing it"
});

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

addMessageListener

添加消息监听

addMessageListener(callback(ret));

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:消息对象
  • 内部字段:
{
    agentId:            //字符串类型;客服ID
    content:            //字符串类型;消息内容
    contenType:         //字符串类型;内容类型
    conversationId:     //数字类型;会话ID
    createdOn:          //数字类型;消息创建时间(毫秒值)
    enterpriseId:       //数字类型;企业id
    fromType:           //字符串类型;消息来源类型
    id:                 //数字类型;消息id
    trackId:            //数字类型;客户id
    type:               //字符串类型;消息类型
    agentNickname:      //字符串类型;客服昵称
    status:             //字符串类型;消息状态
    avatar:             //字符串类型;客服头像
    mediaUrl:           //字符串类型;多媒体链接 (ios不支持)
    isRead:             //布尔类型;是否已读
    subType:            //字符串类型;富文本类型 (ios不支持)
    extra:              //字符串类型;扩展字段 (ios不支持)
    isRobot:            //字符串类型;是否为机器人 (ios不支持)
}

err:

  • 类型:JSON对象
  • 描述:消息状态
  • 内部字段:
{
    status:false, //布尔类型;消息状态
}

示例代码

var mq = api.require("meiQia");
mq.addMessageListener(function(ret, err){
    if(ret){
        console.log(ret);
    }
});

可用性

iOS系统,Android系统

可提供的3.0.1及更高版本

cancelMessageListener

取消消息监听

cancelMessageListener();

示例代码

var mq = api.require("meiQia");
mq.cancelMessageListener();

可用性

iOS系统,Android系统

可提供的3.0.1及更高版本

setClientOffline

设置顾客离线

设置顾客离线后,将停止监听客服发送的消息,开发者不会再监听到即时消息广播。

如果设置了顾客离线,并且在美洽工作台配置了推送服务器,则客服发送的消息将会发送给开发者的服务端。

美洽建议:如果退出界面后需要监听客服消息,不设置顾客离线,这样开发者仍能监听到收到消息的广播,以便提醒顾客有新消息。

setClientOffline();

示例代码

var mq = api.require("meiQia");
mq. setClientOffline();

可用性

iOS系统,Android系统

可提供的3.0.1及更高版本

getLastMessage

获取最近一条消息,调用此接口前需要初始化

getLastMessage();

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:消息对象
  • 内部字段:
{
    agentId:            //字符串类型;客服ID
    content:            //字符串类型;消息内容
    contenType:         //字符串类型;内容类型
    conversationId:     //数字类型;会话ID
    createdOn:          //数字类型;消息创建时间(毫秒值)
    enterpriseId:       //数字类型;企业id
    fromType:           //字符串类型;消息来源类型
    id:                 //数字类型;消息id
    trackId:            //数字类型;客户id
    type:               //字符串类型;消息类型
    agentNickname:      //字符串类型;客服昵称
    status:             //字符串类型;消息状态
    avatar:             //字符串类型;客服头像
    mediaUrl:           //字符串类型;多媒体链接 (ios不支持)
    isRead:             //布尔类型;是否已读
    subType:            //字符串类型;富文本类型 (ios不支持)
    extra:              //字符串类型;扩展字段 (ios不支持)
    isRobot:            //字符串类型;是否为机器人 (ios不支持)
}

err:

  • 类型:JSON对象
  • 描述:消息状态
  • 内部字段:
{
    status:false, //布尔类型;消息状态
}

示例代码

var mq = api.require("meiQia");
mq. getLastMessage();

可用性

iOS系统,Android系统

可提供的3.0.1及更高版本

addChatViewListener

添加聊天页面相关监听

addChatViewListener(callback(ret));

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:消息对象
  • 内部字段:
{
   event:''        //字符串类型;事件类型;取值如下
                   //back:聊天页面返回按钮点击事件
}

示例代码

var mq = api.require("meiQia");
mq.addChatViewListener(function(ret){
    if(ret){
        console.log(ret);
    }
});

可用性

iOS系统,Android系统

可提供的3.3.9及更高版本