Skip to content

Commit 62ae321

Browse files
committed
创建 bot.md
1 parent 43051d6 commit 62ae321

1 file changed

Lines changed: 294 additions & 0 deletions

File tree

src/api/bot/v1/bot.md

Lines changed: 294 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,294 @@
1+
---
2+
title: bot
3+
---
4+
5+
未特别说明情况下请求域名均为 `https://chat-go.jwzhd.com`
6+
没写请求/响应项目表示不需要相关参数.
7+
8+
## 机器人发送信息
9+
10+
POST /open-apis/v1/bot/send?token={机器人token}
11+
12+
请求体:
13+
14+
```JSONC
15+
{
16+
"recvId": "123", // 目标对象ID
17+
"recvType": "user", // 目标对象类别,user-用户,group-群聊
18+
"contentType": "text", // 信息类别,text-文本信息,image-图片信息,video-视频信息,file-文件信息,markdown-Markdown信息,html-HTML信息
19+
"content": {
20+
"text": "测试消息文本", // 消息文本
21+
"at":"123,123,123", // @用户ID,使用","符号分割
22+
"imageKey": "123123123.jpg", // 图片Key
23+
"fileKey": "123123123.txt", // 文件key
24+
"videoKey": "123123123.mp4", // 视频key
25+
"buttons": [
26+
[
27+
{
28+
"text": "测试跳转网站",
29+
"actionType": 1, // 按钮类别,1-复制按钮,2-跳转按钮
30+
"url": "https://www.yhchat.com/"
31+
},
32+
{
33+
"text": "测试复制文本",
34+
"actionType": 2, // 按钮类别,1-复制按钮,2-跳转按钮
35+
"value": "测试被复制文本" // 被复制的文本
36+
}
37+
]
38+
]
39+
},
40+
"parentId":"123123123123123123123", // 引用信息ID
41+
}
42+
```
43+
44+
响应头:
45+
46+
```JSONC
47+
{
48+
"code": 1, // 请求状态码,1为正常
49+
"data": {
50+
"messageInfo": {
51+
"msgId": "123123123123123123123", // 信息ID
52+
"recvId": "123", // 目标对象ID
53+
"recvType": "user" // 目标对象类别,user-用户,group-群聊
54+
}
55+
},
56+
"msg": "success" // 返回消息
57+
}
58+
```
59+
60+
## 机器人批量发送信息
61+
62+
POST /open-apis/v1/bot/batch_send?token={机器人token}
63+
64+
请求体:
65+
66+
```JSONC
67+
{
68+
"recvIds": ["123","123"], // 目标对象ID数组,支持多个对象,相同对象ID只发送一次
69+
"recvType": "user", // 目标对象类别,user-用户,group-群聊
70+
"contentType": "text", // 信息类别,text-文本信息,image-图片信息,video-视频信息,file-文件信息,markdown-Markdown信息,html-HTML信息
71+
"content": {
72+
"text": "测试消息文本", // 消息文本
73+
"at":"123,123,123", // @用户ID,使用","符号分割
74+
"imageKey": "123123123.jpg", // 图片Key
75+
"fileKey": "123123123.txt", // 文件key
76+
"videoKey": "123123123.mp4", // 视频key
77+
"buttons": [
78+
[
79+
{
80+
"text": "测试跳转网站",
81+
"actionType": 1, // 按钮类别,1-复制按钮,2-跳转按钮
82+
"url": "https://www.yhchat.com/"
83+
},
84+
{
85+
"text": "测试复制文本",
86+
"actionType": 2, // 按钮类别,1-复制按钮,2-跳转按钮
87+
"value": "测试被复制文本" // 被复制的文本
88+
}
89+
]
90+
]
91+
},
92+
"parentId":"123123123123123123123", // 引用信息ID
93+
}
94+
```
95+
96+
响应头:
97+
98+
```JSONC
99+
{
100+
"code": 1, // 请求状态码,1为正常
101+
"data": {
102+
"successCount": 1, // 成功发送数量
103+
"successList": [
104+
{
105+
"msgId": "123123123123123123123", // 信息ID
106+
"recvId": "123", // 目标对象ID
107+
"recvType": "user" // 目标对象类别,user-用户,group-群聊
108+
}
109+
// ...
110+
]
111+
},
112+
"msg": "success" // 返回消息
113+
}
114+
```
115+
116+
## 机器人流式发送信息
117+
118+
POST /open-apis/v1/bot/send-stream?token={机器人token}&recvId={对象ID}&recvType={目标对象类别,user-用户,group-群聊}&contentType={信息类别,text-文本信息,markdown-Markdown信息}
119+
120+
请求头:
121+
122+
| 名称 | 数值 | 必须 | 备注 |
123+
| ----- | ---- | ---- |
124+
| Transfer-Encoding | chunked || 使用分块传输编码 |
125+
126+
请求体:
127+
128+
{data-binary/二进制文本数据,此处直接传入文本}
129+
130+
131+
响应头:
132+
133+
```JSONC
134+
{
135+
"code": 1, // 请求状态码,1为正常
136+
"data": {
137+
"messageInfo": {
138+
"msgId": "123123123123123123123", // 信息ID
139+
"recvId": "123", // 目标对象
140+
"recvType": "user" // 目标对象类别,user-用户,group-群聊
141+
}
142+
},
143+
"msg": "success" // 返回消息
144+
}
145+
```
146+
147+
代码示例:
148+
```Golang
149+
// 创建请求
150+
req, err := http.NewRequest("POST", "https://chat-go.jwzhd.com/open-apis/v1/bot/send-stream?token=xxxx&recvId=123&recvType=user&contentType=text", nil)
151+
if err != nil {
152+
fmt.Println("Error creating request:", err)
153+
return
154+
}
155+
156+
// 创建一个管道,用于流式传输数据
157+
pr, pw := io.Pipe()
158+
159+
// 启动一个 goroutine 来写入数据
160+
go func() {
161+
defer pw.Close()
162+
for i := 0; i < 15; i++ {
163+
data := fmt.Sprintf("Message %d", i)
164+
pw.Write([]byte(data))
165+
time.Sleep(1 * time.Second) // 模拟延迟
166+
}
167+
}()
168+
169+
// 将管道的读取器作为请求的主体
170+
req.Body = pr
171+
172+
// 发送请求
173+
resp, err := client.Do(req)
174+
if err != nil {
175+
panic(err)
176+
}
177+
defer resp.Body.Close()
178+
179+
// 读取响应
180+
responseBody, err := io.ReadAll(resp.Body)
181+
if err != nil {
182+
fmt.Println("Error reading response:", err)
183+
return
184+
}
185+
fmt.Println("Response:", string(responseBody))
186+
```
187+
188+
## 机器人编辑信息
189+
190+
POST /open-apis/v1/bot/edit?token={机器人token}
191+
192+
请求体:
193+
194+
```JSONC
195+
{
196+
"msgId": "123123123123123", // 目标信息ID
197+
"recvId": "123", // 目标对象ID
198+
"recvType": "user", // 目标对象类别,user-用户,group-群聊
199+
"contentType": "text", // 信息类别,text-文本信息,image-图片信息,video-视频信息,file-文件信息,markdown-Markdown信息,html-HTML信息
200+
"content": {
201+
"text": "测试消息文本" // 消息文本
202+
}
203+
}
204+
```
205+
206+
响应头:
207+
208+
```JSONC
209+
{
210+
"code": 1, // 请求状态码,1为正常
211+
"data": {
212+
"successCount": 1 // 成功编辑数量
213+
},
214+
"msg": "success" // 返回消息
215+
}
216+
```
217+
218+
## 机器人撤回信息
219+
220+
POST /open-apis/v1/bot/recall?token={机器人token}
221+
222+
请求体:
223+
224+
```JSONC
225+
{
226+
"msgId": "123123123123123", // 目标信息ID
227+
"chatId": "123", // 目标对象ID
228+
"chatType": "user" // 目标对象类别,user-用户,group-群聊
229+
}
230+
```
231+
232+
响应头:
233+
234+
```JSONC
235+
{
236+
"code": 1, // 请求状态码,1为正常
237+
"msg": "success" // 返回消息
238+
}
239+
```
240+
241+
## 机器人获取信息列表
242+
243+
POST /open-apis/v1/bot/messages?token={机器人token}&chat-id={目标信息ID}&chat-type={目标对象类别,user-用户,group-群聊}&message-id={消息ID,不填时可以配合before参数返回最近的N条消息}&after={指定消息ID后N条,默认0条}&before={指定消息ID前N条,默认0条}
244+
245+
响应头:
246+
247+
```JSONC
248+
{
249+
"code": 1, // 请求状态码,1为正常
250+
"data": {
251+
"list": [
252+
{
253+
"msgId": "123123123123", // 信息ID
254+
"parentId": "123123123123", // 引用ID
255+
"senderId": "123", // 发送对象ID
256+
"senderType": "user", // 发送对象类别,user-bot-机器人
257+
"senderNickname": "测试发送者名称", // 发送对象名称
258+
"contentType": "text", // 信息类别,text-文本信息,image-图片信息,video-视频信息,file-文件信息,markdown-Markdown信息,html-HTML信息,expression-表情信息,audio-语音信息
259+
"content": {
260+
"text": "测试文本", // 信息文本
261+
"etag": "123123123123123123123123", // 媒体etag,图片/视频/语音信息都会有此项
262+
"imageHeight": 123, // 图片高度
263+
"imageName": "123.jpg", // 图片名称,大部分情况下可以当作图片key使用
264+
"imageWidth": 123, // 图片宽度
265+
"videoDuration": 123, // 视频时长
266+
"videoUrl": "123.mp4", // 图片网址,大部分情况下可以当作视频key使用
267+
"audioDuration": 123, // 语音时长
268+
"audioUrl": "123.mps", // 语音网址,大部分情况下可以当作语音key使用
269+
"buttons": [
270+
[
271+
{
272+
"text": "测试跳转网站",
273+
"actionType": 1, // 按钮类别,1-复制按钮,2-跳转按钮
274+
"url": "https://www.yhchat.com/"
275+
},
276+
{
277+
"text": "测试复制文本",
278+
"actionType": 2, // 按钮类别,1-复制按钮,2-跳转按钮
279+
"value": "测试被复制文本" // 被复制的文本
280+
}
281+
]
282+
]
283+
},
284+
"sendTime": 123123123123, // 信息发送时间戳
285+
"commandName": "", // 信息使用的指令名称
286+
"commandId": 0 // 信息使用的指令ID
287+
}
288+
// ...
289+
],
290+
"total": 1 // 返回信息数量
291+
},
292+
"msg": "success" // 返回消息
293+
}
294+
```

0 commit comments

Comments
 (0)