1
0
forked from erp-dev/erp
Files
erpnew/docs/MESSAGE_API.md

165 lines
3.6 KiB
Markdown
Raw Permalink 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.
# 消息发送 API
这组 API 用于对外主动发送企业微信应用消息。
当前提供两个接口:
- `POST /api/message/send`:发送文本消息
- `POST /api/message/send/news`:发送单篇图文消息,可同时投递到多个 `agent_id`
## 鉴权
仅这组消息发送 API 需要固定 `Authorization` 请求头。
服务端读取环境变量:
- `MESSAGE_API_AUTHORIZATION`
默认值:
- `hophopkk`
请求示例:
```http
Authorization: hophopkk
Content-Type: application/json
```
鉴权失败时返回:
```json
{
"detail": "Invalid Authorization header"
}
```
HTTP 状态码:`401 Unauthorized`
## 发送文本消息
### 请求
`POST /api/message/send`
```json
{
"agent_id": 1000007,
"content": "库存盘点将在 18:00 开始",
"user_ids": ["zhangsan", "lisi"]
}
```
字段说明:
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `agent_id` | integer | 是 | 企业微信应用 ID |
| `content` | string | 是 | 文本内容1-2048 字节 |
| `user_ids` | string[] | 否 | 接收用户 UserID 列表;为空时发送给应用可见范围内全部成员 |
### 成功响应
```json
{
"errcode": 0,
"errmsg": "ok"
}
```
### curl 示例
```bash
curl -X POST 'http://localhost:8198/api/message/send' \
-H 'Authorization: hophopkk' \
-H 'Content-Type: application/json' \
-d '{
"agent_id": 1000007,
"content": "库存盘点将在 18:00 开始",
"user_ids": ["zhangsan", "lisi"]
}'
```
## 发送图文消息
### 请求
`POST /api/message/send/news`
```json
{
"agent_ids": [1000007, 1000008],
"title": "销售日报",
"description": "点击查看今日各区域销售汇总",
"url": "https://example.com/reports/daily-sales",
"image_url": "https://example.com/static/daily-sales-cover.png",
"user_ids": ["zhangsan"]
}
```
字段说明:
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `agent_ids` | integer[] | 是 | 目标应用 ID 列表,至少 1 个 |
| `title` | string | 是 | 图文标题1-128 字符 |
| `description` | string | 是 | 图文描述1-512 字符 |
| `url` | string | 是 | 点击跳转链接 |
| `image_url` | string | 是 | 封面图片 URL直接映射到企业微信 `picurl` |
| `user_ids` | string[] | 否 | 接收用户 UserID 列表;为空时发送给应用可见范围内全部成员 |
### 成功响应
至少一个 `agent_id` 发送成功时返回 `200`,并带每个应用的发送结果:
```json
{
"results": [
{
"agent_id": 1000007,
"ok": true,
"response": {
"errcode": 0,
"errmsg": "ok"
},
"error": null
},
{
"agent_id": 1000008,
"ok": false,
"response": null,
"error": "agent not found"
}
]
}
```
如果所有 `agent_id` 都失败,则返回 `502 Bad Gateway`
```json
{
"detail": "All agent sends failed"
}
```
### curl 示例
```bash
curl -X POST 'http://localhost:8198/api/message/send/news' \
-H 'Authorization: hophopkk' \
-H 'Content-Type: application/json' \
-d '{
"agent_ids": [1000007, 1000008],
"title": "销售日报",
"description": "点击查看今日各区域销售汇总",
"url": "https://example.com/reports/daily-sales",
"image_url": "https://example.com/static/daily-sales-cover.png",
"user_ids": ["zhangsan"]
}'
```
## 发布建议
- 如果要对外给第三方系统调用,至少同步交付这份文档和环境变量名 `MESSAGE_API_AUTHORIZATION`
- 当前是固定密钥模式,适合内网或受控系统对接,不适合开放互联网暴露
- 如果后续要接入更多对外方,建议升级为签名、时间戳或短期 token 模式