-
Notifications
You must be signed in to change notification settings - Fork 284
API‐发送消息
danni.cool edited this page Jul 16, 2024
·
2 revisions
推消息 v2 版本接口支持的功能最广支持
- ✅ 单条
- ✅ 群发
- ✅ 文件url解析
- ✅ 发送base64
如果要发送本地文件,请移步v1版本接口
- url : http://localhost:3001/webhook/msg/v2?token=[YOUR_PERSONAL_TOKEN]
-
methods :
POST
-
contentType :
application/json
- body : 格式见下方 1.1 body 参数
参数 | 说明 | 数据类型 | 默认值 | 可否为空 | 可选参数 |
---|---|---|---|---|---|
to |
消息接收方,传入String 默认是发给昵称(群名同理), 传入Object 结构支持发给备注过的人,比如:{alias: '备注名'} ,群名不支持备注名 |
String Object
|
- | N | - |
isRoom | 是否发给群消息,这个参数决定了找人的时候找的是群还是人,因为昵称其实和群名相同在技术处理上 | Boolean |
false |
Y |
true false
|
data | 消息体结构,见下方 1.2 data 结构 |
Object Array
|
false |
N |
true false
|
参数 | 说明 | 数据类型 | 默认值 | 可否为空 | 可选参数 |
---|---|---|---|---|---|
type | 消息类型, 字段留空解析为纯文本 |
String text
|
- | Y |
text fileUrl base64
|
content |
消息内容,type 为 fileUrl 或 base64 时会解析 content 成文件 |
String |
- | N | - |
fileAlias |
发送的文件名别名 仅当 type 为 fileUrl 或 base64 有效,用来解决自定义发送文件名问题,base64类型,不填该参数,默认为 时间戳+文件后缀名 |
String |
- | Y | - |
{
"to": "Daniel",
"data": [{
"type": "text",
"content": "【提示】欧元区4月Sentix投资者信心指数录得-5.9,为\n2022年2月以来新高。"
}]
}
-
success
: 消息发送成功与否,群发消息即使部份发送成功也会返回true
-
message
: 出错时提示的消息- 消息发送成功: Message sent successfully
- 参数校验不通过: Some params is not valid, sending task is suspend...
- 消息都发送失败: All Messages [number] sent failed...
- 部份发送成功: Part of the message sent successfully...
-
task
: 发送任务详细信息-
task.successCount
: 发送成功条数 -
task.totalCount
: 总消息条数 -
task.failedCount
: 发送失败条数 -
task.reject
: 因为参数校验不通过的参数和 error 提示 -
task.sentFailed
: 因为发送失败和 error 提示 -
task.notFound
: 因为未找到用户或者群和 error 提示
-
Important
确保消息单次发送一致性,某一条参数校验失败会终止所有消息发送任务
{
"success": true,
"message": "",
"task": {
"successCount": 0,
"totalCount": 0,
"failedCount": 0,
"reject": [],
"sentFailed": [],
"notFound": []
}
}
curl --location 'http://localhost:3001/webhook/msg/v2?token=[YOUR_PERSONAL_TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
"to": "testUser",
"data": { "content": "你好👋" }
}'
url解析
Tip
发文件支持自定义文件名,注意不做文件转换
curl --location 'http://localhost:3001/webhook/msg/v2?token=[YOUR_PERSONAL_TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
"to": "testUser",
"data": {
"type": "fileUrl",
"fileAlias": "beautiful-cloud.jpg",
"content": "https://download.samplelib.com/jpeg/sample-clouds-400x300.jpg"
}
}'
base64
Tip
base64 默认无文件名,所以不填fileAlias的时候,默认为时间戳+文件后缀名,例如 1716170518601.jpg
curl --location 'http://localhost:3001/webhook/msg/v2?token=[YOUR_PERSONAL_TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
"to": "testUser",
"data": {
"type": "base64",
"content": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAkACQAAD/4QB0RXhpZgAA..."
}
}'
curl --location 'http://localhost:3001/webhook/msg/v2?token=[YOUR_PERSONAL_TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
"to": "testGroup",
"isRoom": true,
"data": { "type": "fileUrl" , "content": "https://download.samplelib.com/jpeg/sample-clouds-400x300.jpg" },
}'
curl --location 'http://localhost:3001/webhook/msg/v2?token=[YOUR_PERSONAL_TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
"to": "testUser",
"data": [
{
"type": "text",
"content": "你好👋"
},
{
"type": "fileUrl",
"content": "https://samplelib.com/lib/preview/mp3/sample-3s.mp3"
}
]
}'
curl --location 'http://localhost:3001/webhook/msg/v2?token=[YOUR_PERSONAL_TOKEN]' \
--header 'Content-Type: application/json' \
--data '[
{
"to": "testUser1",
"data": {
"content": "你好👋"
}
},
{
"to": "testUser2",
"data": [
{
"content": "你好👋"
},
{
"content": "近况如何?"
}
]
}
]'
发送本地消息接口每次只能发送单条消息
- url:http://localhost:3001/webhook/msg?token=[YOUR_PERSONAL_TOKEN]
- methods: POST
- contentType: multipart/form-data
- formData: 格式见下面表格
参数 | 说明 | 数据类型 | 默认值 | 可否为空 | 可选值 |
---|---|---|---|---|---|
to | 消息接收方,传入String 默认是发给昵称(群名同理), 传入 Json String 结构支持发给备注过的人,比如:--form 'to="{alias: "小号"}"',群名不支持备注名称 |
String |
- | N | - |
isRoom |
是否发的群消息,formData纯文本只能使用 String 类型,1 代表是,0 代表否, |
String |
0 |
Y |
1 0
|
content | 文件,本地文件一次只能发一个,多个文件手动调用多次 | Binary |
- | N | - |
curl --location --request POST 'http://localhost:3001/webhook/msg?token=[YOUR_PERSONAL_TOKEN]' \
--form 'to=testGroup' \
--form content=@"$HOME/demo.jpg" \
--form 'isRoom=1'
{
"success": true,
"message": "Message sent successfully"
}