一洽客服系统-第三方智能问答机器人接入

1.问答交互流程

1.1 问答交互流程图

问答交互流程图

1.2 问答交互接口

第三方提供消息交互接口,Echat在需要查询答案时将问题以及必要的信息post给此接口进行答案查询。
接口地址例如:https://chat.robot.org/robot/

1.2.1 接口上线

在配置接口后,上线成功后,一洽会开通第三方机器人问答处理。上线校验方式如下:

已GET请求携带的签名和回传验证字符串echoStr参数向需要上线的接口发送请求,接口提供方验证签名合法后返回echoStr的值,一洽收到后对比发送和回传的echoStr值是否一致,一致则上线成功。

参数 是否可选 描述
signature 必选 一洽加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 必选 时间戳
nonce 必选 随机数
echoStr 必选 验证校验参数

开发者通过检验signature对请求进行校验。若确认此次GET请求来自一洽服务器,请返回参数echoStr的值,则接入生效,否则接入失败。加密/校验流程如下:

1)将token、timestamp、nonce三个参数进行字典序排序
2)将三个参数字符串拼接成一个字符串进行sha1加密
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于一洽

1.2.2 问答接口基础参数

GET参数:每次问答一洽都会携带签名信息和请求类型向问答接口发起请求

参数 是否可选 描述
signature 必选 一洽加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 必选 时间戳
nonce 必选 随机数
dataType 必选 本次请求的业务数据类型
qaData:问答数据,请求问题的答案
evaluatData:答案满意度反馈数据(解决、未解决)
eventData: 事件反馈,在访客问答的过程中产生的事件,例如:选择列表问题、点击转人工、取消信息收集、提交信息收集等
recommendData:正在输入的数据,如果支持输入联想可开启此数据接收

签名验证方式和接口上线时的验证方式一致。

接口POST数据企业可选择是否加密,加解密请参考:消息加解密规范

1.2.3 访客问题检索(自动应答)

在第三方机器人问答系统接入成功后,一洽会将访客咨询的问题,提交给问答接口来检索问题答案,检索问题答案时提交的接口信息如下:

dataType=qaData
POST内容:一洽会将问题以及对话的一些基础信息组装成json格式的数据,已raw的方式post给问答接口

JSON数据组成如下:

对象 参数 类型 是否可选 描述
  msgId long 必选 请求消息ID,全局唯一,接口幂等性判定
  tm long 必选 请求消息产生时的时间戳
baseInfo   Object 必选 问答请求的基础信息
  sessionId String 必选 此次访客对话的sessionId,用来区分每一次对话
  media int 必选 本次访客请求的来源渠道 1:pc web 2:mobile web 3:iphone sdk 4:android sdk 5:微信 6:sdk(不区分ios、android)7:小程序 8:新浪微博 其他:自定义渠道
  lan String 必选 本次访客请求的语言设定 zh:中文 en:英文 ja:日文 fr:法文 ko:韩文
chatInfo   Object 可选 产生问题的对话信息。
  echatTag String 可选 本次会话的业务咨询标签。
  lastChatTime String 可选 上次对话时间,如果之前有来访过则返回上次来访时间,时间格式yyyy-MM-dd HH:mm:ss
  chatTimes int 可选 本次会话是当前访客第几次会话
  visitTimes int 可选 本次来访是当前访客第来访。注:访客浏览了加入echat.js的客户页面后算作来访
  myData String 可选 访客接入对话时,企业设置的业务数据(任意值,最大长度255字节)
  keyword String 可选 访客来访渠道为搜索引擎时的搜索关键字
routeInfo   Object 可选 本次会话路由信息
  routeId long 可选 本次会话所选定的路由ID
  routeName int 可选 本次会话所选定的路由名称
  routeStatus int 可选 本次会话所选定路由,在访客咨询问题时客服接待状态 1:在线 2:离线
userInfo   Object 可选 访客的基本信息
  vipId String 可选 访客所在渠道的唯一ID,如:微信渠道的openId,会员的uid
  vipType int 可选 访客类型 0:web匿名 1:会员 2:sdk匿名 4:微信访客 6:小程序访客 7:新浪微博访客
  visitorName String 可选 当前咨询访客的名字
locationInfo   Object 可选 访客的地理位置信息
  ip Long 可选 访客的来源ip(非web渠道访问没有来源ip)
  country String 可选 访客所在国家(ip解析或者微信等渠道的个人信息获得)
  province String 可选 访客所在省份(ip解析或者微信等渠道的个人信息获得)
  city String 可选 访客所在城市(ip解析或者微信等渠道的个人信息获得)
questionInfo   String 必选 问题信息
  question String 可选 访客本次咨询的问题,和docId两者二选一
  docId String 可选 相关问题或者相似问题访客直接通过序号选择的知识ID,由问答接口返回的列表问题中获取
  unsatisfyTimes int 可选 访客本次会话中提交为不满意的次数

提交的明文数据示例:

{
    "baseInfo":{
        "lan":"zh",
        "media":1,
        "sessionId":"123456"
    },
    "chatInfo":{
        "chatTimes":5,
        "echatTag":"商务合作",
        "keyword":"客服系统",
        "lastChatTime":"2018-03-01 20:00:00",
        "myData":"osName:ios,newwork:1,prod:base",
        "visitTimes":9
    },
    "locationInfo":{
        "city":"成都市",
        "country":"中国",
        "ip":1857829435,
        "province":"四川省"
    },
    "msgId":987654321,
    "questionInfo":{
        "question":"请问智能业务机器人可以支持微信渠道吗?",
        "unsatisfyTimes":2
    },
    "routeInfo":{
        "routeId":3333,
        "routeName":"官网商务合作",
        "routeStatus":2
    },
    "tm":1523719930922,
    "userInfo":{
        "vipId":"88888888",
        "vipType":0,
        "visitorName":"张先生"
    }
}

提交的密文数据示例:

YrU6kXHIBgy03Vq9QbJU54cwPSxyJlgeJJV8/xCDlsFPONdHhoJzINJqVI5Wo6yVJMjaOaf5Xt1Wup3UQo5/lDnRM3y5hnxGcI82f7aQ0wRcm4HQVvHmwqP+9+lnBbLL

接口返回规范:

问答接口接收到一洽的请求后,同步将检索结果组装成json格式的数据返回给一洽,返回的json数据详细描述如下:

对象 参数 类型 是否可选 描述
  searchId String 可选 此次问题检索ID,在问题反馈或者其他事件反馈时和问题检索过程进行关联
  queryType int 必选 此次问题检索的结果 1: 没有答案 2: 准确答案(精准匹配) 3: 准确答案(完全匹配) 4: 有相似问题 5: 转人工
  answerType int 可选 答案类型,在queryType==2 or queryType==3 时有效.
1:基础知识(一问一答的基础知识) 2:引导问题(机器人反问选择或者任务型知识)
只有answerType==1时才需要收集用户的满意度反馈
  answerMedia int 可选 问题答案的媒介类型 0:文本类型(纯文本、超文本) 1:图片 2:语音 3:视频 4:图文消息
  answer String 可选 问题答案
如果没有答案时(queryType==1),answer有内容则认为是无答案提示语(可以在没有答案,禁用词出现,查询失败时返回对应的文本),如果answer为空则使用一洽的配置的无答案提示语
如果是相似问题时(queryType==4),answer有内容则认为是相似问题提示语,如果没有则使用一洽配置的相似问题提示语
如果是转人工指令(queryType==5),answer有内容则认为是转人工的提示语,如果没有则使用一洽配置的转人工提示语
  feedback String 可选 是否需要收集用户的满意度反馈,0:不需要收集 1:需要收集。如不传此字段默认answerType==1时才设置需要收集用户的满意度反馈
  docId String 可选 在(queryType==2 or queryType==3 and answerType==1)时,需要收集用户的满意度反馈,此时必须有docId,否则无法针对知识进行满意度反馈收集
  segWords String[] 可选 所检索question的分词结果
  sentimentTag int 可选 情感标识。 -1:负面情绪 1:正面情绪
  sentimentProbability double 可选 情感分析的正负面情绪概率 ,取值0-1
  sensitiveWords String[] 可选 所问问题中包含的敏感词
knowledgeList   Object[] 可选 相关、相似问题列表。
queryType==2 or queryType==3时此列表为相关问题列表
queryType==4时此列表为相似问题列表
  question String 必选 问题标准问法
  docId String 必选 问题ID,在访客通过指令或者点击选择问题时,通过docId来检索答案

1.2.4 访客输入联想

在第三方机器人问答系统接入成功后,一洽会将访客正在输入的问题,提交给问答接口来检索匹配的问题列表,获取相似问题列表时提交的信息如下:
dataType=suggestData
POST内容:一洽会将输入内容以及对话的一些基础信息组装成json格式的数据,已raw的方式post给问答接口
JSON数据组成如下

对象 参数 类型 是否可选 描述
  msgId Long 必选 请求消息ID,全局唯一,接口幂等性判定
  tm Long 必选 请求消息产生时的时间戳
  maxCount int 必选 最大返回的输入联想问题条数
baseInfo Object 必选 问答请求的基础信息
  sessionId String 必选 此次访客对话的sessionId,用来区分每一次对话
  media int 必选 本次访客请求的来源渠道 1:pc web 2:mobile web 3:iphone sdk 4:android sdk 5:微信 6:sdk(不区分ios、android)7:小程序 8:新浪微博 其他:自定义渠道
  lan String 必选 本次访客请求的语言设定 zh:中文 en:英文 ja:日文 fr:法文 ko:韩文
chatInfo Object 可选 产生问题的对话信息。
  echatTag String 可选 本次会话的业务咨询标签。
  lastChatTime String 可选 上次对话时间,如果之前有来访过则返回上次来访时间,时间格式yyyy-MM-dd HH:mm:ss
  chatTimes int 可选 本次会话是当前访客第几次会话
  visitTimes int 可选 本次来访是当前访客第来访。注:访客浏览了加入echat.js的客户页面后算作来访
  myData String 必选 访客接入对话时,企业设置的业务数据(任意值,最大长度255字节)
  keyword String 可选 访客来访渠道为搜索引擎时的搜索关键字
routeInfo Object 可选 本次会话路由信息
  routeId long 可选 本次会话所选定的路由ID
  routeName int 可选 本次会话所选定的路由名称
  routeStatus int 可选 本次会话所选定路由,在访客咨询问题时客服接待状态 1:在线 2:离线
userInfo Object 可选 访客的基本信息
  vipId String 可选 访客所在渠道的唯一ID,如:微信渠道的openId,会员的uid
  vipType int 可选 访客类型 0:web匿名 1:会员 2:sdk匿名 4:微信访客 6:小程序访客 7:新浪微博访客
  visitorName String 可选 当前咨询访客的名字
locationInfo Object 可选 访客的地理位置信息
  ip Long 可选 访客的来源ip(非web渠道访问没有来源ip)
  country String 访客所在国家(ip解析或者微信等渠道的个人信息获得)
  province String 可选 访客所在省份(ip解析或者微信等渠道的个人信息获得)
  city String 可选 访客所在省份(ip解析或者微信等渠道的个人信息获得)
questionInfo String 必选 访客输入的信息
  question String 可选 访客输入的内容

提交的明文数据示例:

{
  "baseInfo":{
    "lan":"zh",
    "media":1,
    "sessionId":"123456"
  },
  "chatInfo":{
    "chatTimes":5,
    "echatTag":"商务合作",
    "keyword":"客服系统",
    "lastChatTime":"2018-03-01 20:00:00",
    "myData":"osName:ios,newwork:1,prod:base",
    "visitTimes":9
  },
  "locationInfo":{
    "city":"成都市",
    "country":"中国",
    "ip":1857829435,
    "province":"四川省"
  },
  "msgId":987654321,
  "questionInfo":{
    "question":"一洽智能客服",
  },
  "routeInfo":{
    "routeId":3333,
    "routeName":"官网商务合作",
    "routeStatus":2
  },
  "tm":1523719930922,
  "userInfo":{
    "vipId":"88888888",
    "vipType":0,
    "visitorName":"张先生"
  }
}

提交的密文数据示例:

YrU6kXHIBgy03Vq9QbJU54cwPSxyJlgeJJV8/xCDlsFPONdHhoJzINJqVI5Wo6yVJMjaOaf5Xt1Wup3UQo5/lDnRM3y5hnxGcI82f7aQ0wRcm4HQVvHmwqP+9+lnBbLL

接口返回规范:

问答接口接收到一洽的请求后,同步将检索结果组装成json格式的数据返回给一洽,返回的json数据详细描述如下:

对象 参数 类型 是否可选 描述
  searchId String 可选 此次问题检索ID,在问题反馈或者其他事件反馈时和问题检索过程进行关联
  segWords String[] 可选 所检索question的分词结果
  sentimentTag int 可选 情感标识。 -1:负面情绪 1:正面情绪
  sentimentProbability double 可选 情感分析的正负面情绪概率 ,取值0-1
  sensitiveWords String[] 可选 所问问题中包含的敏感词
knowledgeList Object[] 必选 相似问题列表。
  question String 必选 问题标准问法
  docId String 必选 问题ID,在客服选择发送了某个问题后,会将docId作为选择事件的值通知给开发者。

1.2.5 客服智能辅助

在第三方机器人问答系统接入成功后,一洽会将人工客服聊天过程中收到的访客发送的问题,提交给问答接口来检索机器人建议的答案列表,获取智能推荐列表时提交的信息如下:
dataType=recommendData
POST内容:一洽会将访客问题以及对话的一些基础信息组装成json格式的数据,已raw的方式post给问答接口
JSON数据组成如下:

对象 参数 类型 是否可选 描述
  msgId Long 必选 请求消息ID,全局唯一,接口幂等性判定
  tm Long 必选 请求消息产生时的时间戳
  maxCount int 必选 最大返回的输入联想问题条数
  minMatchScore double 必选 一洽查询推荐问题列表返回值的配置要求,避免返回无效推荐,例如0.5表示只有知识匹配问题答案的概率超过50%才返回。
baseInfo Object 必选 问答请求的基础信息
  sessionId String 必选 此次访客对话的sessionId,用来区分每一次对话
  media int 必选 本次访客请求的来源渠道 1:pc web 2:mobile web 3:iphone sdk 4:android sdk 5:微信 6:sdk(不区分ios、android)7:小程序 8:新浪微博 其他:自定义渠道
  lan String 必选 本次访客请求的语言设定 zh:中文 en:英文 ja:日文 fr:法文 ko:韩文
chatInfo Object 可选 产生问题的对话信息。
  echatTag String 可选 本次会话的业务咨询标签。
  lastChatTime String 可选 上次对话时间,如果之前有来访过则返回上次来访时间,时间格式yyyy-MM-dd HH:mm:ss
  chatTimes int 可选 本次会话是当前访客第几次会话
  visitTimes int 可选 本次来访是当前访客第来访。注:访客浏览了加入echat.js的客户页面后算作来访
  myData String 可选 访客接入对话时,企业设置的业务数据(任意值,最大长度255字节)
  keyword String 可选 访客来访渠道为搜索引擎时的搜索关键字
routeInfo Object 可选 本次会话路由信息
  routeId long 可选 本次会话所选定的路由ID
  routeName int 可选 本次会话所选定的路由名称
  routeStatus int 可选 本次会话所选定路由,在访客咨询问题时客服接待状态 1:在线 2:离线
userInfo Object 可选 访客的基本信息
  vipId String 可选 访客所在渠道的唯一ID,如:微信渠道的openId,会员的uid
  vipType int 可选 访客类型 0:web匿名 1:会员 2:sdk匿名 4:微信访客 6:小程序访客 7:新浪微博访客
  visitorName String 可选 当前咨询访客的名字
locationInfo Object 可选 访客的地理位置信息
  ip Long 可选 访客的来源ip(非web渠道访问没有来源ip)
  country String 访客所在国家(ip解析或者微信等渠道的个人信息获得)
  province String 可选 访客所在省份(ip解析或者微信等渠道的个人信息获得)
  city String 可选 访客所在省份(ip解析或者微信等渠道的个人信息获得)
staffInfo Object 可选 接待对话的客服信息
  staffId int 可选 请求智能辅助的客服ID
  staffLogname String 可选 客服账号(手机/邮箱)
  staffNickName String 可选 客服昵称-对外
  staffName String 可选 客服名称-对内
questionInfo String 必选 访客输入的信息
  question String 可选 访客输入的内容

提交的明文数据示例:

{
  "baseInfo":{
    "lan":"zh",
    "media":1,
    "sessionId":"123456"
  },
  "chatInfo":{
    "chatTimes":5,
    "echatTag":"商务合作",
    "keyword":"客服系统",
    "lastChatTime":"2018-03-01 20:00:00",
    "myData":"osName:ios,newwork:1,prod:base",
    "visitTimes":9
  },
  "locationInfo":{
    "city":"成都市",
    "country":"中国",
    "ip":1857829435,
    "province":"四川省"
  },
  "msgId":987654321,
  "questionInfo":{
    "question":"一洽智能客服系统介绍",
  },
  "routeInfo":{
    "routeId":3333,
    "routeName":"官网商务合作",
    "routeStatus":2
  },
  "tm":1523719930922,
  "userInfo":{
    "vipId":"88888888",
    "vipType":0,
    "visitorName":"张先生"
  }
}

提交的密文数据示例:

YrU6kXHIBgy03Vq9QbJU54cwPSxyJlgeJJV8/xCDlsFPONdHhoJzINJqVI5Wo6yVJMjaOaf5Xt1Wup3UQo5/lDnRM3y5hnxGcI82f7aQ0wRcm4HQVvHmwqP+9+lnBbLL

接口返回规范:

问答接口接收到一洽的请求后,同步将检索结果组装成json格式的数据返回给一洽,返回的json数据详细描述如下:

对象 参数 类型 是否可选 描述
  searchId String 可选 此次问题检索ID,在问题反馈或者其他事件反馈时和问题检索过程进行关联
  segWords String[] 可选 所检索question的分词结果
  sentimentTag int 可选 情感标识。 -1:负面情绪 1:正面情绪
  sentimentProbability double 可选 情感分析的正负面情绪概率 ,取值0-1
  sensitiveWords String[] 可选 所问问题中包含的敏感词
knowledgeList Object[] 必选 相似问题列表。
  question String 必选 问题标准问法
  answer String 必选 推荐知识的答案
  answerMedia int 必选 问题答案的媒介类型 0:文本类型(纯文本、超文本) 1:图片 2:语音 3:视频 4:echat图文消息 5:微信图文消息
默认:0
  docId String 必选 问题ID,在客服选择发送了某个问题后,会将docId作为选择事件的值通知给开发者。
  matchScore double 必选 此知识和访客所问问题的匹配度,值范围0-1,1代表系统认为此知识时访客所问问题的准确答案,一洽会根据配置自动发送给访客作为回答。

1.2.6 访客满意度反馈

在访客知识问答中如果访客对问答接口提供的答案选择了满意或者不满意,一洽会将访客的反馈结果反馈给问答接口,以方便第三方知识库合理优化知识答案

dataType=evaluatData
POST内容:一洽会将问题结果的反馈组装成json格式的数据,以raw的方式post给问答接口,访客选择“解决",”未解决"一洽会发送一次返回结果,在选择了未解决原因后会在发一次请求通知

参数 类型 是否可选 描述
msgId long 必选 请求消息ID,全局唯一,接口幂等性判定
tm long 必选 请求消息产生时的时间戳
sessionId String 必选 此次访客对话的sessionId,用来区分每一次对话
searchId String 可选 此次事件反馈所在的查询的ID,在需要满意度反馈原因时此ID可用来和满意度的反馈信息进行关联,此ID为问答接口中机器人系统返回的查询ID
queryId String 可选 此字段的作用同searchId,如果机器人系统未返回searchId字段的话可使用此字段作为反馈的唯一标识,此ID为Echat的业务查询ID
visitorId String 必选 反馈访客的ID,可作为访客的唯一身份识别
ip Long 可选 访客的网络IP地址
question String 可选 原始访客问句
docId String 可选 事件所在答案的docid。比如满意度反馈的答案的docid、问题选择所在的答案的docid、转接人工发生的答案的docid
eventType int 必选 事件类型。 1:满意度反馈 2:满意度原因反馈 3:问题选择(列表问题选择) 4:转人工点击
eventValue String 可选 事件值,不同的时间类型时间值不同。
eventType == 1:解决未解决值, 1:满意 2:不满意
eventType == 2:解决未解原因,比如:词不达意,信息不足等
eventType == 3:值为所选问题的docId
eventType==4: 转接人工的原因: 1:不满意次数达到上限点击转接 2:没有答案次数达到上限点击转接 3:对话工具栏点击人工客服转接 4:访客输入转人工关键字自动转接 5:第三方接口转人工
eventType==5: 选择的联想问题的docId
eventType==6: 客服选择的推荐问题的docId

此接口返回"success"或者空则表示接口调用成功。

1.2.7 访客操作事件反馈

在访客知识问答中如果访客进行了问题选择点击、转人工点击等,一洽会将访客的操作反馈结接口,以方便第三方知识库分析用户的行为,改善知识结构

dataType=eventData
POST内容:一洽会将问操作事件组装成json格式的数据,以raw的方式post给问答接口

数据格式定义同满意度反馈

此接口返回"success"或者空则表示接口调用成功。

1.2.8 非文本答案格式定义

1.2.8.1 图片消息

格式:json
例如:

{
  "picUrl":"http://www.xxx.com/picUrl",
  "thumbUrl":"http://www.xxx.com/thumbUrl"
}
参数 类型 是否可选 描述
picUrl string 图片地址,大小不超过5M
thumbUrl string 图片缩略图地址

1.2.8.2 语音消息(仅微信支持)

格式:json
例如:

{
  "format":"mp3",
  "fileUrl":"http://www.xxx.com/fileUrl",
  "fileSize":1024,
  "duration":6 
}
参数 类型 是否可选 描述
fileUrl string 语音文件地址
fileSize int 语音文件大小 单位(kb),最大2M
format string 音频格式 mp3 amr
duration int 音频时长 单位 (s) 最长60s

1.2.8.3 视频消息

格式:json
例如:

{
  "fileUrl":"http://www.xxx.com/fileUrl",
  "fileSize":1024,
  "thumbUrl":"http://www.xxx.com/thumbUrl"
}
参数 类型 是否可选 描述
fileUrl string 视频地址,只支持mp4格式
thumbUrl string 视频缩略图地址
fileSize int 视频文件大小 单位(kb) 大小不超过10M

1.2.8.4 echat图文消息

格式:json
例如:

{
            "eventId":"eventId",
            "content":"在这里填写图文消息的内容在这里填写图文消息的内容在这里填写图文消息的内容",
            "imageUrl":"http://tfile.rainbowred.com/group1/M00/00/12/rBAKCFkifSKAa7stAAAQFFe-9nU432.jpg",
            "title":"这里是标题",
            "urlForVisitor":"http('http://m.echatsoft.com','inner')",
            "urlForStaff":"http('http://m.echatsoft.com','inner')",
            "memo":"这里是备注",
        }
参数 类型 是否可选 描述
eventId String 图文消息的ID,可自定义前缀或者其他格式来通知业务系统图文消息的消息类型:比如:prod-123 ,order-123等
title String 图文消息的标题,如:新款风衣
content String 图文消息的描述,只支持div span style属性,如:产品的价格,优化信息等
imageUrl String 图文消息的图片地址
urlForVisitor String 图文消息提供给访客打开的url,可以为空。
url允许两种协议: http协议: 支持新窗口打开以及对话窗口的互动窗口打开。协议格式:http(url,openType)
新窗口打开:http('http://m.echatsoft.com','blank')
互动窗口打开:http('http://m.echatsoft.com','inner')
小程序协议:支持保留对话窗口打开小程序页面,支持销毁对话窗口打开小程序页面。
协议格式:xcx(url,openType)
保留对话窗口打开小程序页面:xcx('/pages/addFunction/addFunction','navigateTo')
不保留对话窗口打开小程序页面:xcx('/pages/addFunction/addFunction','redirectTo')
跳转至小程序导航页:xcx('/pages/addFunction/addFunction','switchTab')
urlForStaff String 图文消息提供给客服打开的url,可以为空。支持http[s]协议和apiUrl协议。
http协议和urlForVisitor参数中的http协议一致.
apiUrl协议:apiUrl(pageId,openType).
pageId:业务系统的页面ID
openType:打开类型 reload:重载打开 hash:不刷新已有的业务系统页面.
重载打开:apiUrl(123,'reload');
hash打开:apiUrl(123,'hash');
memo String 图文消息的描述,如:产品评价等

图文消息效果图示如下:

1.2.8.5 微信图文消息

格式:json
例如:

{
  "fileUrl":"http://www.xxx.com/fileUrl",
  "fileSize":1024,
  "thumbUrl":"http://www.xxx.com/thumbUrl"
}
对象 参数 类型 是否可选 描述
articleCount int 图文消息个数
articles 图文消息信息,注意,如果图文数超过限制,则将只发限制内的条数
title string 图文消息标题
description string 图文消息描述
picUrl string 图片链接,支持JPG、PNG格式,较好的效果为大图360200,小图200200
url string 点击图文消息跳转链接