Docker-WeChatBot-Webhook项目:微信消息推送API详解
项目概述
Docker-WeChatBot-Webhook是一个基于Docker容器化的微信机器人解决方案,它提供了Webhook接口来实现微信消息的自动化发送功能。通过简单的HTTP请求,开发者可以轻松地将消息推送到指定的微信个人或群聊中。
API版本说明
当前文档介绍的是V1版本的API接口,该版本提供了基本的文字和文件消息发送能力。接口设计简洁明了,支持多种消息类型和接收方指定方式。
基础配置
在使用API之前,需要确保:
- 服务已正确部署并运行在本地3001端口
- 已获取有效的个人访问令牌(PERSONAL_TOKEN)
API端点
基础URL:http://localhost:3001/webhook/msg?token=[YOUR_PERSONAL_TOKEN] 请求方法:POST
消息发送方式
方式一:JSON格式发送(支持文字和文件外链)
请求头: Content-Type: application/json
请求参数:
| 参数名 | 说明 | 类型 | 必填 | 默认值 | 备注 | |---------|----------------------------------------------------------------------|--------------------|------|--------|----------------------------------------------------------------------| | to | 消息接收方 | String/Object | 是 | - | 可传字符串(昵称)或对象(如{alias:'备注名'}),群名不支持备注名 | | isRoom | 是否为群消息 | Boolean | 否 | false | true表示发送到群聊,false表示发送到个人 | | type | 消息类型 | String | 是 | text | text:文本消息 fileUrl:文件外链 | | content | 消息内容 | String | 是 | - | 文本内容或文件URL(多个URL用英文逗号分隔) |
技术细节:
- 文件外链发送时,系统会自动解析URL并下载文件
- 消息不会自动拆分,长消息需要手动处理
- 群名和个人昵称相同时,需要通过isRoom参数明确指定
示例代码:
发送文本消息:
curl --location --request POST 'http://localhost:3001/webhook/msg?token=your_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"to": "技术交流群",
"type": "text",
"content": "大家好,这是测试消息",
"isRoom": true
}'
发送文件外链:
curl --location --request POST 'http://localhost:3001/webhook/msg?token=your_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"to": "张三",
"type": "fileUrl",
"content": "https://example.com/file1.pdf,https://example.com/file2.jpg"
}'
方式二:FormData格式发送(支持本地文件)
请求头: Content-Type: multipart/form-data
请求参数:
| 参数名 | 说明 | 类型 | 必填 | 默认值 | 备注 | |---------|----------------------------------------------------------------------|---------|------|--------|----------------------------------------------------------------------| | to | 消息接收方 | String | 是 | - | 仅支持字符串形式 | | isRoom | 是否为群消息 | String | 否 | "0" | "1"表示群聊,"0"表示个人 | | content | 要发送的文件 | Binary | 是 | - | 一次只能发送一个文件 |
技术细节:
- 适用于直接上传本地文件
- 每次调用只能发送一个文件
- 群聊标识使用字符串形式的"1"和"0"
示例代码:
curl --location --request POST 'http://localhost:3001/webhook/msg?token=your_token' \
--form 'to="项目通知群"' \
--form content=@"/path/to/your/file.pdf" \
--form 'isRoom=1'
最佳实践建议
-
消息接收方处理:
- 对于个人,优先使用备注名({alias:'备注名'}),避免昵称变更导致发送失败
- 对于群聊,确保群名准确无误
-
文件发送:
- 小文件建议使用FormData直接上传
- 大文件或远程文件建议使用文件外链方式
- 多个文件需要多次调用API
-
错误处理:
- 检查HTTP响应状态码
- 2xx表示成功
- 4xx检查token和参数是否正确
- 5xx服务端错误
-
性能考虑:
- 频繁发送消息建议添加适当的延迟
- 大量消息建议实现队列机制
常见问题解答
Q: 为什么消息发送失败了? A: 请检查:1) token是否正确 2) 接收方是否存在 3) 如果是群聊isRoom参数是否正确设置
Q: 文件发送有什么限制? A: JSON方式只支持外链,FormData方式只支持本地文件且一次一个。文件大小受微信限制。
Q: 如何知道消息是否发送成功? A: API会返回HTTP状态码,2xx表示成功,同时可以检查微信客户端确认。
Q: 能否发送图片、视频等其他类型消息? A: 当前版本支持文本和通用文件发送,具体文件类型能否显示取决于微信客户端。
总结
Docker-WeChatBot-Webhook的V1 API提供了简单易用的微信消息推送接口,通过两种不同的内容类型支持,开发者可以灵活地发送文本和各种文件。理解接收方指定方式和消息类型区别是正确使用该API的关键。后续版本可能会增加更多消息类型和高级功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考