本节定义了在 消息接口 一节中,收/发消息的消息接口所涉及的消息格式。
全媒体系统支持的消息类型有:
消息类型在 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转义字符的问题。
<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
当消息类型是图片、文件、声音时,发送一方需要将附件 预先 通过 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 的地址、端口、用户、密码。
警告
文件服务器上的附件必须保留其真实的后缀名。