feat: add send many account mode
This commit is contained in:
+51
-8
@@ -51,6 +51,33 @@ POST /api/v1/message/send
|
||||
@提醒功能仅在支持的渠道(钉钉、企业微信)中生效。
|
||||
:::
|
||||
|
||||
### 动态接收者参数(可选)🆕
|
||||
|
||||
| 参数 | 类型 | 必填 | 说明 |
|
||||
|------|------|------|------|
|
||||
| recipients | array | 否 | 动态接收者列表,如 `["user1@example.com", "user2@example.com"]` |
|
||||
|
||||
::: tip 群发模式
|
||||
动态接收者功能允许在 API 调用时指定接收者列表,实现群发功能。
|
||||
|
||||
**支持的渠道:**
|
||||
- ✅ **邮件** - 支持多个收件人,实现邮件群发
|
||||
- ✅ **微信公众号** - 支持多个 OpenID,实现公众号群发
|
||||
|
||||
**使用条件:**
|
||||
1. 任务实例必须配置为"动态接收者模式"
|
||||
2. 一个任务只能配置一个动态接收实例
|
||||
3. 动态接收实例不能与固定接收实例混合使用
|
||||
|
||||
**配置方式:**
|
||||
在任务编辑页面,添加实例时勾选"动态接收者模式",此时无需配置固定接收者。
|
||||
|
||||
**注意事项:**
|
||||
- 如果任务配置了动态接收实例,`recipients` 参数为必填
|
||||
- 不支持动态接收的渠道会忽略此参数
|
||||
- 建议控制接收者数量,避免触发渠道限流
|
||||
:::
|
||||
|
||||
## 请求示例
|
||||
|
||||
### 基本示例(纯文本)
|
||||
@@ -88,6 +115,22 @@ POST /api/v1/message/send
|
||||
}
|
||||
```
|
||||
|
||||
### 动态接收者示例(群发)🆕
|
||||
|
||||
```json
|
||||
{
|
||||
"token": "a3541c2f0d3e1b4a5c6d7e8f9a0b1c2d3e",
|
||||
"title": "系统维护通知",
|
||||
"text": "系统将于今晚22:00进行维护,预计持续2小时。",
|
||||
"html": "<h2>系统维护通知</h2><p>系统将于今晚<strong>22:00</strong>进行维护,预计持续<strong>2小时</strong>。</p>",
|
||||
"recipients": [
|
||||
"user1@example.com",
|
||||
"user2@example.com",
|
||||
"user3@example.com"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### cURL 示例
|
||||
|
||||
```bash
|
||||
@@ -258,14 +301,14 @@ V1 API 支持三种消息格式,系统会根据任务实例配置的格式类
|
||||
|
||||
## 支持的推送渠道
|
||||
|
||||
| 渠道 | 支持格式 | @提醒 | 说明 |
|
||||
|------|---------|------|------|
|
||||
| **邮件** | Text, HTML | ❌ | SMTP邮件发送,推荐使用 HTML 格式 |
|
||||
| **钉钉** | Text, Markdown | ✅ | 钉钉机器人,支持 Markdown 富文本 |
|
||||
| **企业微信** | Text, Markdown | ✅ | 企业微信机器人,支持 Markdown |
|
||||
| **微信公众号** | Text | ❌ | 微信测试公众号模板消息 |
|
||||
| **自定义Webhook** | Text, HTML, Markdown | ❌ | 自定义HTTP请求,格式取决于配置 |
|
||||
| **自托管消息** | Text, HTML, Markdown | ❌ | 站内消息,支持多种格式 |
|
||||
| 渠道 | 支持格式 | @提醒 | 动态接收者 | 说明 |
|
||||
|------|---------|------|-----------|------|
|
||||
| **邮件** | Text, HTML | ❌ | ✅ | SMTP邮件发送,支持群发多个收件人 |
|
||||
| **钉钉** | Text, Markdown | ✅ | ❌ | 钉钉机器人,支持 Markdown 富文本 |
|
||||
| **企业微信** | Text, Markdown | ✅ | ❌ | 企业微信机器人,支持 Markdown |
|
||||
| **微信公众号** | Text | ❌ | ✅ | 微信测试公众号,支持多个 OpenID 群发 |
|
||||
| **自定义Webhook** | Text, HTML, Markdown | ❌ | ❌ | 自定义HTTP请求,格式取决于配置 |
|
||||
| **自托管消息** | Text, HTML, Markdown | ❌ | ❌ | 站内消息,支持多种格式 |
|
||||
|
||||
## 使用流程
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ POST /api/v2/message/send
|
||||
| token | string | 是 | 加密的模板 Token |
|
||||
| title | string | 是 | 消息标题 |
|
||||
| placeholders | object | 否 | 占位符键值对 |
|
||||
| recipients | array | 条件必填 | 动态接收者列表(群发模式)🆕 |
|
||||
|
||||
### 参数说明
|
||||
|
||||
@@ -59,6 +60,19 @@ POST /api/v2/message/send
|
||||
- 如果模板中定义了占位符但未传递,将使用默认值
|
||||
- 如果既未传递也无默认值,占位符将保持原样
|
||||
|
||||
#### recipients 🆕
|
||||
|
||||
- 动态接收者列表,用于群发场景
|
||||
- 格式为字符串数组:`["user1@example.com", "user2@example.com"]`
|
||||
- **条件必填**:如果模板配置了动态接收实例,此参数为必填
|
||||
- **支持的渠道**:
|
||||
- ✅ 邮件 - 多个收件人邮箱地址
|
||||
- ✅ 微信公众号 - 多个用户 OpenID
|
||||
- **使用限制**:
|
||||
- 一个模板只能配置一个动态接收实例
|
||||
- 动态接收实例不能与固定接收实例混合使用
|
||||
- 建议控制接收者数量,避免触发渠道限流
|
||||
|
||||
## 请求示例
|
||||
|
||||
### 基本示例
|
||||
@@ -165,6 +179,38 @@ axios.post(url, data)
|
||||
});
|
||||
```
|
||||
|
||||
### 动态接收者示例(群发)🆕
|
||||
|
||||
```javascript
|
||||
const axios = require('axios');
|
||||
|
||||
const url = 'http://your-domain/api/v2/message/send';
|
||||
|
||||
const data = {
|
||||
token: 'a3541c2f0d3e1b4a5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b',
|
||||
title: '活动通知',
|
||||
placeholders: {
|
||||
activity_name: '双十二大促',
|
||||
start_time: '2024-12-12 00:00:00',
|
||||
discount: '全场8折'
|
||||
},
|
||||
recipients: [
|
||||
'user1@example.com',
|
||||
'user2@example.com',
|
||||
'user3@example.com'
|
||||
]
|
||||
};
|
||||
|
||||
axios.post(url, data)
|
||||
.then(response => {
|
||||
console.log(response.data);
|
||||
console.log(`成功发送给 ${response.data.data.count} 个接收者`);
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
});
|
||||
```
|
||||
|
||||
### Java 示例
|
||||
|
||||
```java
|
||||
|
||||
+54
-2
@@ -53,14 +53,30 @@
|
||||
|
||||
#### 邮件渠道
|
||||
|
||||
- **收件人邮箱** - 接收邮件的邮箱地址
|
||||
- **消息格式** - Text 或 HTML
|
||||
- **固定模式**:
|
||||
- 收件人邮箱 - 接收邮件的邮箱地址
|
||||
- 消息格式 - Text 或 HTML
|
||||
- **动态接收者模式(群发)** 🆕:
|
||||
- 勾选"动态接收者模式"
|
||||
- 无需配置固定收件人
|
||||
- 发送时通过 API 的 `recipients` 参数指定多个收件人
|
||||
- 适用于邮件群发场景
|
||||
|
||||
#### 钉钉/企业微信
|
||||
|
||||
- **消息格式** - Text 或 Markdown
|
||||
- **@提醒** - 可选配置@手机号或@所有人
|
||||
|
||||
#### 微信公众号
|
||||
|
||||
- **固定模式**:
|
||||
- 用户 OpenID - 接收消息的用户标识
|
||||
- **动态接收者模式(群发)** 🆕:
|
||||
- 勾选"动态接收者模式"
|
||||
- 无需配置固定 OpenID
|
||||
- 发送时通过 API 的 `recipients` 参数指定多个 OpenID
|
||||
- 适用于公众号群发场景
|
||||
|
||||
#### 自定义 Webhook
|
||||
|
||||
- 根据 Webhook 要求配置相应参数
|
||||
@@ -70,6 +86,13 @@
|
||||
- 无需额外配置
|
||||
- **消息格式** - Text、HTML 或 Markdown
|
||||
|
||||
::: warning 动态接收者模式限制
|
||||
1. 一个任务只能配置一个动态接收实例
|
||||
2. 动态接收实例不能与固定接收实例混合使用
|
||||
3. 如果配置了动态接收实例,API 调用时 `recipients` 参数为必填
|
||||
4. 建议控制接收者数量,避免触发渠道限流
|
||||
:::
|
||||
|
||||
## 管理任务
|
||||
|
||||
### 查看任务列表
|
||||
@@ -190,6 +213,35 @@ curl -X POST http://your-domain/api/v1/message/send \
|
||||
}
|
||||
```
|
||||
|
||||
### 动态接收者功能(群发)🆕
|
||||
|
||||
对于支持的渠道(邮件、微信公众号),可以使用动态接收者实现群发:
|
||||
|
||||
```json
|
||||
{
|
||||
"token": "your_task_token",
|
||||
"title": "系统维护通知",
|
||||
"text": "系统将于今晚22:00进行维护",
|
||||
"html": "<h2>系统维护通知</h2><p>系统将于今晚<strong>22:00</strong>进行维护</p>",
|
||||
"recipients": [
|
||||
"user1@example.com",
|
||||
"user2@example.com",
|
||||
"user3@example.com"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**使用场景:**
|
||||
- 邮件群发通知
|
||||
- 微信公众号批量推送
|
||||
- 营销活动通知
|
||||
- 系统公告发布
|
||||
|
||||
**注意事项:**
|
||||
- 任务必须配置为动态接收者模式
|
||||
- 一个任务只能有一个动态接收实例
|
||||
- 建议控制接收者数量,避免触发限流
|
||||
|
||||
## 工作流程
|
||||
|
||||
```mermaid
|
||||
|
||||
+43
-2
@@ -169,15 +169,36 @@ Markdown 格式,适用于钉钉、企业微信等支持 Markdown 的渠道:
|
||||
不同渠道需要配置不同的参数:
|
||||
|
||||
**邮件渠道:**
|
||||
- 收件人邮箱地址
|
||||
- 消息格式:Text 或 HTML
|
||||
- **固定模式**:
|
||||
- 收件人邮箱地址
|
||||
- 消息格式:Text 或 HTML
|
||||
- **动态接收者模式(群发)** 🆕:
|
||||
- 勾选"动态接收者模式"
|
||||
- 无需配置固定收件人
|
||||
- 发送时通过 API 的 `recipients` 参数指定多个收件人
|
||||
- 适用于邮件群发场景
|
||||
|
||||
**钉钉/企业微信:**
|
||||
- 消息格式:Text 或 Markdown
|
||||
|
||||
**微信公众号:**
|
||||
- **固定模式**:
|
||||
- 用户 OpenID
|
||||
- **动态接收者模式(群发)** 🆕:
|
||||
- 勾选"动态接收者模式"
|
||||
- 无需配置固定 OpenID
|
||||
- 发送时通过 API 的 `recipients` 参数指定多个 OpenID
|
||||
|
||||
**自定义 Webhook:**
|
||||
- 根据 Webhook 要求配置
|
||||
|
||||
::: warning 动态接收者模式限制
|
||||
1. 一个模板只能配置一个动态接收实例
|
||||
2. 动态接收实例不能与固定接收实例混合使用
|
||||
3. 如果配置了动态接收实例,API 调用时 `recipients` 参数为必填
|
||||
4. 建议控制接收者数量,避免触发渠道限流
|
||||
:::
|
||||
|
||||
### 3. 管理实例
|
||||
|
||||
- **启用/禁用** - 控制实例是否参与发送
|
||||
@@ -220,6 +241,26 @@ curl -X POST http://your-domain/api/v2/message/send \
|
||||
}'
|
||||
```
|
||||
|
||||
**动态接收者示例(群发)** 🆕:
|
||||
|
||||
```bash
|
||||
curl -X POST http://your-domain/api/v2/message/send \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"token": "encrypted_template_token",
|
||||
"title": "活动通知",
|
||||
"placeholders": {
|
||||
"activity_name": "双十二大促",
|
||||
"discount": "全场8折"
|
||||
},
|
||||
"recipients": [
|
||||
"user1@example.com",
|
||||
"user2@example.com",
|
||||
"user3@example.com"
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 1. 占位符命名
|
||||
|
||||
Reference in New Issue
Block a user