OpenShamrock/docs/api/message.md

381 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 消息相关
icon: comment
---
::: warning 注意
对于 Shamrock 尚未实现的 API会在标题添加标记 <Badge text="未实现" type="danger" vertical="baseline" />
:::
## 发送私聊消息
该接口用于发送私聊消息。
### API 端点
`/send_private_msg`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ----------- | ------ | ---- | ---------------- |
| user_id | int64 | 是 | QQ 号 |
| message | string | 是 | 消息内容 |
| auto_escape | bool | 否 | 是否解析 CQ 码。 |
### 响应
| 字段 | 类型 | 说明 |
| ---------- | ----- | ------- |
| message_id | int32 | 消息 ID |
| time | int64 | 时间戳 |
## 发送群聊消息
该接口用于发送群聊消息。
### API 端点
`/send_group_msg`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ----------- | ------ | ---- | ---------------- |
| group_id | int64 | 是 | 群号 |
| message | string | 是 | 消息内容 |
| auto_escape | bool | 否 | 是否解析 CQ 码。 |
### 响应
| 字段 | 类型 | 说明 |
| ---------- | ----- | ------- |
| message_id | int32 | 消息 ID |
| time | int64 | 时间戳 |
## 发送消息
该接口用于发送消息。
### API 端点
`/send_msg`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ------------ | ------ | ---- | ---------------- |
| message_type | string | 是 | 消息类型 |
| user_id | int64 | 是 | QQ 号 |
| group_id | int64 | 是 | 群号 |
| discuss_id | int64 | 是 | 讨论组号 |
| message | string | 是 | 消息内容 |
| auto_escape | bool | 否 | 是否解析 CQ 码。 |
::: warning 注意
当前发送消息的 API 暂不支持发送讨论组消息。
:::
### 响应
| 字段 | 类型 | 说明 |
| ---------- | ----- | ------- |
| message_id | int32 | 消息 ID |
| time | int64 | 时间戳 |
## 获取消息
### API 端点
`/get_msg`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ---------- | ----- | ---- | ------- |
| message_id | int32 | 是 | 消息 ID |
### 响应
| 字段 | 类型 | 说明 |
| ------------ | ------------------------- | ---------- |
| time | int64 | 时间戳 |
| message_type | string | 消息类型 |
| message_id | int32 | 消息 ID |
| real_id | int32 | 真实 ID |
| sender | Object<[Sender](#sender)> | 发送人信息 |
| message | object | 消息体 |
| group_id | int64 | 群号 |
| target_id | int64 | 消息目标(私聊) |
| peer_id | int64 | 消息接收者群聊是群号私聊时是目标QQ |
> `peer_id`是其他同类框架所表达的`target_id`!
#### Sender
| 字段 | 类型 | 说明 |
| -------- | ------ | ----- |
| user_id | int64 | QQ 号 |
| nickname | string | 昵称 |
| sex | string | 性别 |
| age | int32 | 年龄 |
| uid | string | UID |
## 撤回消息
该接口用于撤回消息。
### API 端点
`/delete_msg`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ---------- | ----- | ---- | ------- |
| message_id | int32 | 是 | 消息 ID |
### 响应
该接口将返回处理结果,其中 `data` 字段无数据。。
## 获取历史消息
### API 端点
`/get_history_msg`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ---------- | ----- | ---- | ------- |
| message_type | string | 是 | 消息 类型 |
| user_id | int64 | 否 | 私聊QQ |
| group_id | int64 | 否 | 群号 |
| count | int32 | 否 | 获取的消息数量默认为20|
| message_seq | int32 | 否 | 起始消息的message_id默认为0表示从最后一条发言往前 |
### 响应
| 字段 | 类型 | 说明 |
| ------------ | ------------------------- | ---------- |
| messages | Message[] | 消息集 |
#### Message
| 字段 | 类型 | 说明 |
| ------------ | ------------------------- | ---------- |
| time | int64 | 时间戳 |
| message_type | string | 消息类型 |
| message_id | int32 | 消息 ID |
| real_id | int32 | 真实 ID |
| sender | Object<[Sender](#sender)> | 发送人信息 |
| message | object | 消息体 |
| group_id | int64 | 群号 |
| target_id | int64 | 消息目标(私聊) |
| peer_id | int64 | 消息接收者群聊是群号私聊时是目标QQ |
> `peer_id`是其他同类框架所表达的`target_id`!
## 获取群聊历史消息
### API 端点
`/get_group_msg_history`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ---------- |-------| ---- |---------------------------------|
| group_id | int64 | 是 | 群号 |
| count | int32 | 否 | 获取的消息数量默认为20 |
| message_seq | int32 | 否 | 起始消息的message_id默认为0表示从最后一条发言往前 |
### 响应
| 字段 | 类型 | 说明 |
| ------------ | ------------------------- | ---------- |
| messages | Message[] | 消息集 |
## 清除本地缓存消息
该接口用于清除本地消息缓存。
### API 端点
`/clear_msgs`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ---------- | ----- | ---- | ------- |
| message_type | string | 是 | 消息 类型 |
| user_id | int64 | 否 | 私聊QQ |
| group_id | int64 | 否 | 群号 |
### 响应
该接口将返回处理结果,其中 `data` 字段无数据。
## 获取合并转发消息内容
获取合并转发内容
### API 端点
`/get_forward_msg`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ---------- | ----- | ---- | ------- |
| id | string | 是 | 消息资源ID卡片消息里面的resId |
> 由于QQ内部错误该接口可能导致闪退等问题的出现一般是闪退一次后再次重新启动便不再闪退但是可能无法获取合并转发的内容
### 响应
```json
{
"status": "ok",
"retcode": 0,
"data": {
"messages": [
{
"time": 1699375697,
"message_type": "private",
"message_id": 123456,
"real_id": 0,
"sender": {
"user_id": 114514,
"nickname": "伏秋洛~",
"sex": "unknown",
"age": 0,
"uid": "u_xxxx"
},
"message": [
{
"type": "text",
"data": {
"text": "aaaaaaaaaa"
}
}
],
"peer_id": 114514,
"target_id": 114514
}
]
},
"echo": ""
}
```
## 发送群聊合并转发
发送群聊合并转发。
### API 端点
`/send_group_forward_msg`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ---------- | ----- | ---- | ------- |
| group_id | int64 | 是 | 发送到的目标群号 |
| messages | foward message[] | 合并转发消息集 |
### 响应
该接口将返回处理结果,其中 `data` 字段无数据。
### 示例
直接引用消息的合并转发id为`消息id`
```json
[
{
"type": "node",
"data": {
"id": "123"
}
},
{
"type": "node",
"data": {
"id": "456"
}
}
]
```
自定义消息合并转发:
```json
[
{
"type": "node",
"data": {
"name": "消息发送者A",
"content": [
{
"type": "text",
"data": {
"text": "测试消息1"
}
}
]
}
},
{
"type": "node",
"data": {
"name": "消息发送者B",
"content": "[CQ:image,file=xxxxx]测试消息2"
}
}
]
```
引用自定义混合合并转发:
```json
[
{
"type": "node",
"data": {
"name": "自定义发送者",
"content": "我是自定义消息",
}
},
{
"type": "node",
"data": {
"id": "123"
}
}
]
```
> 由于QQ限制该接口不提供合并转发后的消息ID以及合并转发ID。
## 发送私聊合并转发
发送私聊合并转发。
### API 端点
`/send_private_forward_msg`
### 参数
| 字段 | 类型 | 必须 | 说明 |
| ---------- | ----- | ---- | ------- |
| user_id | int64 | 是 | 发送到的目标QQ |
| messages | foward message[] | 合并转发消息集 |
### 响应
该接口将返回处理结果,其中 `data` 字段无数据。