內容目录

上一个主题

消息接口

下一个主题

排队接口

本页

消息格式

本节定义了在 消息接口 一节中,收/发消息的消息接口所涉及的消息格式。

消息类型

全媒体系统支持的消息类型有:

  • 系统命令消息
  • 文本消息
  • 图片消息
  • 声音消息
  • 文件消息

消息类型在 MsgType 属性中指定:

类型标识符 说明
event 事件通知消息
text 文本消息
image 图片消息
voice 声音消息
file 文件消息

消息内容

消息的内容在 Content 属性中指定。

注意

坐席的IM界面完全按照本文定义的消息格式,对坐席展示客户输入的消息,以及生成坐席输入的消息。请APP开发者不要自行扩展消息格式。

以下定义不同消息类型下, Content 属性的不同格式:

事件通知消息

该类型的消息用于APP客户端向全媒体系统发送特殊的事件或者命令

这些请求不会被当作聊天文字,而是被当作命令。如 请求人工服务

{
    "MsgType": "event.CLICK.RG",
}

MsgType 属性值为 event.CLICK.RG 时,全媒体系统会进行人工服务的排队。

文本消息

文本消息应被原样的展现给坐席与客户,除了 HTML标签表情转义符

如:

{
    "MsgType": "text",
    "Content": "[微笑] 亲,你好!"
}

APP 开发者请注意HTML标签、特殊字符以及JSON转义字符的问题。

HTML标签

<a> 标签,可用于在文本中插入超链接

如:

你好,<a href="http://baidu.com">戳这里访问百度</a> ,呵呵

此时,应向用户呈现的效果是:


你好,戳这里访问百度 ,呵呵

表情转义符

方括号内具有表情关键字的文本,被视作表情转义符。

例如:

[微笑]

被视作微笑表情转义符,此时应向客户端显示:



同理,以下文本:

我[晕],这下[糗大了]!

应该被显示为:


,这下

APP开发者可在此下载我们采用的默认表情素材:下载地址

该压缩包中,每个表情图片都是一个png文件,文件名是数字。

表情与文件名的对应关系如下表所示:

	"微笑" : "0",
	"撇嘴" :"1",
	"色" : "2",
	"发呆" : "3",
	"得意" : "4",
	"流泪" : "5",
	"害羞" : "6", 
	"闭嘴" : "7", 
	"睡" : "8", 
	"大哭" : "9", 
	"尴尬" : "10", 
	"发怒" : "11", 
	"调皮" : "12", 
	"呲牙" : "13", 
	"惊讶" : "14", 
	"难过" : "15", 
	"酷" : "16", 
	"冷汗" : "17", 
	"抓狂" : "18", 
	"吐" : "19", 
	"偷笑" : "20", 
	"可爱" : "21", 
	"愉快" : "21", 
	"白眼" : "22", 
	"傲慢" : "23", 
	"饥饿" : "24", 
	"困" : "25", 
	"惊恐" : "26", 
	"流汗" : "27", 
	"憨笑" : "28", 
	"悠闲" : "29",
	"大兵" : "29",	
	"奋斗" : "30", 
	"咒骂" : "31", 
	"疑问" : "32", 
	"嘘" : "33", 
	"晕" : "34",
	"疯了" : "35",
	"折磨" : "35",	
	"衰" : "36", 
	"骷髅" : "37", 
	"敲打" : "38", 
	"再见" : "39", 
	"擦汗" : "40", 
	"抠鼻" : "41", 
	"鼓掌" : "42", 
	"糗大了" : "43", 
	"坏笑" : "44", 
	"左哼哼" : "45", 
	"右哼哼" : "46", 
	"哈欠" : "47", 
	"鄙视" : "48", 
	"委屈" : "49", 
	"快哭了" : "50", 
	"阴险" : "51", 
	"亲亲" : "52", 
	"吓" : "53", 
	"可怜" : "54", 
	"菜刀" : "55", 
	"西瓜" : "56", 
	"啤酒" : "57", 
	"篮球" : "58", 
	"乒乓" : "59", 
	"咖啡" : "60", 
	"饭" : "61", 
	"猪头" : "62", 
	"玫瑰" : "63", 
	"凋谢" : "64", 
	"嘴唇" : "65",
	"示爱" : "65",	
	"爱心" : "66", 
	"心碎" : "67", 
	"蛋糕" : "68", 
	"闪电" : "69", 
	"炸弹" : "70", 
	"刀" : "71", 
	"足球" : "72", 
	"瓢虫" : "73", 
	"便便" : "74", 
	"月亮" : "75", 
	"太阳" : "76", 
	"礼物" : "77", 
	"拥抱" : "78", 
	"强" : "79", 
	"弱" : "80", 
	"握手" : "81", 
	"胜利" : "82", 
	"抱拳" : "83", 
	"勾引" : "84", 
	"拳头" : "85", 
	"差劲" : "86", 
	"爱你" : "87", 
	"NO" : "88", 
	"OK" : "89", 
	"爱情" : "90", 
	"飞吻" : "91", 
	"跳跳" : "92", 
	"发抖" : "93", 
	"怄火" : "94", 
	"转圈" : "95", 
	"磕头" : "96", 
	"回头" : "97", 
	"跳绳" : "98", 
	"挥手" : "99", 
	"激动" : "100", 
	"街舞" : "101", 
	"献吻" : "102", 
	"左太极" : "103", 
	"右太极" : "104",

APP开发者也可以选择其他素材作为表情,但是必须遵守转义规则,且表情转义符必须按照上表的定义。

图片消息

消息内容是图片文件的超链接地址。

如:

{
    "MsgType": "image",
    "Content": "xxxx/xxxx.jpg"
}

消息发送程序必须保证该地址可被访问。

文件大小: <120KB

文件格式:JPG

声音消息

消息内容是声音文件的超链接地址。

如:

{
    "MsgType": "voice",
    "Content": "xxxx/xxxx.amr"
}

消息发送程序必须保证该地址可被访问。

文件大小: <2M

播放长度: <60s

文件格式:AMR, MP3

文件消息

消息内容是文件的超链接地址。

如:

{
    "MsgType": "voice",
    "Content": "xxxx/xxxx.zip"
}

消息发送程序必须保证该地址可被访问。

消息附件

当消息类型是图片、文件、声音时,发送一方需要将附件 预先 通过 FTP 上传 到全媒体系统的文件服务器,并在消息中填写文件路径,为了避免名称冲突,应使用UUID作为文件名。

为了方便备份和文件见管理,请 IM 的接入服务使用如下的文件格式:

<appid>/<YYYY>/<MM>/<DD>/<uuid-file-name>.<ext>

例如,APPID为1003的接入服务要发送一个JPEG图片,它应该将该图片上传到FTP服务器,上传后的文件名形如 1001/2014/12/25/01b626e8-a10f-11e4-97d6-a424f507d784.jpg ,这个文件路径名同时也是消息体中 Content 字段填写的内容。坐席将通过HTTP协议从文件服务器下载该路径所对应的文件。

同理,在接收附件时,APP通过HTTP协议从文件服务器下载 Content 对应的附件。

注意

APP服务器通过 FTP 协议向文件服务器上传文件。为了便于客户端/浏览器访问附件,文件服务器同时也提供了 HTTP 访问功能。

小技巧

文件服务器的 FTP 与 HTTP 访问地址可能存在前缀, APP 应可设置这些地址的前缀,以及 FTP 的地址、端口、用户、密码。

警告

文件服务器上的附件必须保留其真实的后缀名。