
收到的数据格式
{
"robotInfo": {
"wxid": "bot-wx-id",
"name": "BotName"
},
"message": {
"conversionId": "room-or-contact-id",
"conversionName": "room-or-contact-name",
"isRoom": false,
"chatName": "contact-display-name",
"chatId": "contact-id",
"chatAlias": "contact-alias-or-null",
"chatUserWeixin": "contact-weixin-id-or-empty",
"isMyself": false,
"time": 1673779200,
"type": "文字",
"content": "消息文本(仅当 type=文字 或 特殊类型时)",
"url": "https://oss.example.com/xxxx.jpg(当有附件/图片/音频/表情时)",
"mediaInfo": {
"title": "链接或小程序标题 / 视频号昵称 等(按类型不同)",
"url": "链接或小程序页面或封面地址",
"description": "描述文本",
"imageUrl": "缩略图地址",
"appid": "小程序 appid(小程序类型)",
"username": "小程序 username(小程序类型)",
"nickname": "视频号昵称(视频号类型)",
"coverUrl": "视频号封面(视频号类型)",
"avatar": "头像/封面(视频号/名片等)",
"objectId": "视频号 objectId",
"objectNonceId": "视频号 objectNonceId",
"wxid": "名片对应的 wxid(名片类型)",
"name": "名片 name(名片类型)"
}
}
}
下面把 axios.request(config) 中 config.data 的字段详解用表格整理出来。包含字段名、类型、是否必需、说明与何时出现。
| 顶层结构 |
字段 |
类型 |
必需 |
说明 |
| robotInfo |
object |
是 |
机器人信息(见下表) |
| message |
object |
是 |
消息主体(见下表) |
| robotInfo 字段 |
字段 |
类型 |
必需 |
说明 |
| wxid |
string |
是 |
机器人微信 id(代码中为 robotInfo.id) |
| name |
string |
是 |
机器人名称(robotInfo.name()) |
| message(消息对象)主要字段 |
字段 |
类型 |
必需 |
说明 |
| conversionId |
string |
是 |
会话 id:群则为 room.id,私聊则为 contact.id(注意:代码里拼写为 conversionId) |
| conversionName |
string |
否 |
会话名:群名或联系人名 |
| isRoom |
boolean |
是 |
是否群聊(true/false) |
| chatName |
string |
否 |
联系人昵称(talker.name()) |
| chatId |
string |
否 |
联系人 id(contact.id) |
| chatAlias |
string | null |
否 |
联系人备注(alias),可能为空或 null |
| chatUserWeixin |
string |
否 |
联系人 weixin id(contact.weixin()),无则空字符串 |
| isMyself |
boolean |
是 |
是否自己发的消息 |
| time |
integer |
是 |
Unix 时间(秒)。若原 timestamp 为毫秒(长度>10),会除以1000并取整 |
| type |
string |
是 |
消息类型(中文标签),如 "文字"、"图片"、"小程序" 等 |
| content |
string |
否 |
文本内容(当 type = '文字'),或红包固定文本 "收到红包" |
| url |
string |
否 |
当消息有附件/图片/音频/自定义表情时,上传 OSS 后返回的文件 URL |
| mediaInfo |
object |
否 |
与消息类型相关的额外信息(见下表) |
| mediaInfo 按消息类型可能包含的字段(常见项) |
消息类型 |
mediaInfo 字段 |
类型 |
说明 |
| 视频号 (Channel) |
nickname |
string |
视频号昵称 |
|
coverUrl |
string |
封面 URL |
|
avatar |
string |
头像 URL |
|
desc |
string |
描述 |
|
url |
string |
视频号链接 |
|
objectId |
string |
objectId |
|
objectNonceId |
string |
objectNonceId |
| 名片 (Contact) |
name |
string |
名片上的姓名 |
|
avatar |
string |
头像 URL(可能为空) |
|
wxid |
string |
名片对应的 wxid |
| H5 链接 (Url) |
url |
string |
链接地址 |
|
description |
string |
链接描述 |
|
imageUrl |
string |
缩略图 URL |
|
title |
string |
链接标题 |
| 小程序 (MiniProgram) |
url |
string |
decodeURIComponent(pagePath)(页面路径) |
|
appid |
string |
小程序 appid(代码对 PuppetService 有不同处理) |
|
username |
string |
小程序 username(或与 appid 互换,根据 puppetType) |
|
description |
string |
小程序描述 |
|
imageUrl |
string |
缩略图 URL |
|
title |
string |
小程序标题 |
| 附件/图片/文件/视频 |
— |
— |
一般使用 url 字段保存上传后 OSS 的文件地址;若是图片则 type='图片',否则 '文件' |
| 语音 (Audio) |
— |
— |
使用 url 保存上传后 OSS 的音频地址 |
| 自定义表情 (Emoticon) |
— |
— |
使用 url 保存上传后 OSS 的图片地址 |