接收消息
事件描述
机器人接收到用户发送的消息后触发此事件:
- 与机器人单聊的消息
- 群聊中@机器人的消息
目前仅支持接收的消息类型:普通文本、回复消息、图片、表情、图文混排、文件
订阅说明
| 事件主体 | kso.xz.message |
|---|---|
| 回调地址 | 请先在开发者后台-事件订阅模块配置地址 |
| 支持应用类型 | 企业自建应用、第三方企业应用 |
| 权限要求 | 获取用户发给机器人的单聊消息(kso.im.user2bot.notification) 、获取用户在群聊中@机器人的消息(kso.im.chat2bot.notification) |
| 解密方式 | 详见 解密算法 |
事件体(解密前)
| 名称 | 类型 | 说明 |
|---|---|---|
| topic | string | 消息主题(值为" kso.xz.message ") |
| operation | string | 消息变更动作(创建:create) |
| time | integer | 时间(秒为单位的时间戳) |
| nonce | string | iv向量(解密时使用) |
| signature | string | 消息签名 |
| encrypted_data | string | 消息变更的加密字段 |
事件体示例(解密前)
json
{
"topic": " kso.xz.message",
"operation": "create",
"nonce": "xxxxxx",
"signature": "xxxxxxxxxxxx",
"time": 0, // 秒为单位的时间戳
"encrypted_data": "xxxxxx"
}事件体(解密后)
| 名称 | 类型 | 说明 |
|---|---|---|
| chat_id | integer | 会话id |
| chat_type | integer | 会话类型:2-群聊,3-单聊 |
| company_id | string | 会话归属企业id |
| sender | object | 发送者信息 |
| ∟ user_id | integer | 发送者用户id |
| ∟ company_id | integer | 发送者归属企业id |
| send_time | integer | 消息发送时间 |
| message_id | integer | 消息id |
| message_type | integer | 消息类型 |
| content | object | 消息内容,不同消息类型content结构不同,详见content结构说明 |
| mentions | array | 被@的用户信息 |
| ∟ user_id | integer | 被@的用户id |
| ∟ company_id | integer | 被@的用户所属的企业id |
事件体示例(解密后)
json
data: {
"chat_id": 12345, // 会话id
"chat_type": 2, // 会话类型:2-群聊,3-单聊
"company_id": "string", // 企业id
"sender": {
"user_id": 1234432, // 发送者的用户id
"company_id": 1234432 // 发送者所属的企业id
},
"send_time": 0, // 发送时间
"message_id": 22331, // 消息id
"message_type": 10, // 消息类型:0-文本、7-回复、12-文件、13-表情或图片、18-图文混排
"content": { // 不同消息类型content结构不同,此处仅为示例
"type": "plainText", // plainText - 普通文本,markdown - markdown文本
"text": "xxx"
},
"mentions": [
{
"user_id": 1234432, // 被@的用户id
"company_id": 1234432, // 被@的用户所属的企业id
}
]
}参数结构说明(Content)
文本(type=0)
json
{
"type": "plainText", // plainText - 普通文本,markdown - markdown文本
"text": "xxx"
}回复(type=7)
json
{
"ref_msg_id": 12345, // 被引用消息id
"ref_content_type": 7, // 被引用消息内容的格式
"ref_content": {}, // 被引用消息内容,格式参考其余消息类型即可(文本、图文混排、表情包)
"content_type": 7,
"content": {} // 回复的内容,格式参考其余消息类型(文本、图文混排、表情包)
}文件(type=12)
json
{
"store_key": "xxx", // 文件id
"file_name": "xxx" // 文件名
}表情包和图片(type=13)
json
{
"store_key": "xxxx", // 图片文件id
"category": "emoji" // 分类 image-图片 emoji-表情
}图文混排(type=18)
json
{
"elements": [
{
"tag": "text", // 内容分类 text-文本 emoji-表情 img-图片
"content": {
"text": "awao",
"type": "plainText" // 文本渲染格式 plainText普通文本
}
},
{
"tag": "emoji",
"content": {
"store_key": "DD1AFB29cGljLzBiN2ExZDdhNjIzMWRjYmU0YmNiNzJjMDBmM2JmZjQ1OmtzMzprb2EtaW1n" // 表情文件id
}
},
{
"tag": "img",
"content": {
"store_key": "DD1AFB29Mzg3NDg3Yzk1ZjQzZTFiNWMxYjk2MDhjNjY3ZThhZjk6a3MzOmtvYS1pbWc=" // 图片文件id
}
}
]
}