Skip to content

API‐发送消息

danni.cool edited this page Jul 16, 2024 · 2 revisions

1.推消息v2版本接口(json)

推消息 v2 版本接口支持的功能最广支持

  • ✅ 单条
  • ✅ 群发
  • ✅ 文件url解析
  • ✅ 发送base64

如果要发送本地文件,请移步v1版本接口

请求体

body 参数

参数 说明 数据类型 默认值 可否为空 可选参数
to 消息接收方,传入String 默认是发给昵称(群名同理), 传入Object 结构支持发给备注过的人,比如:{alias: '备注名'},群名不支持备注名 String Object - N -
isRoom 是否发给群消息,这个参数决定了找人的时候找的是群还是人,因为昵称其实和群名相同在技术处理上 Boolean false Y true false
data 消息体结构,见下方 1.2 data 结构 Object Array false N true false

data 结构

参数 说明 数据类型 默认值 可否为空 可选参数
type 消息类型, 字段留空解析为纯文本 String text - Y text fileUrl base64
content 消息内容,type 为 fileUrlbase64 时会解析 content 成文件 String - N -
fileAlias 发送的文件名别名 仅当 type 为 fileUrlbase64有效,用来解决自定义发送文件名问题,base64类型,不填该参数,默认为 时间戳+文件后缀名 String - Y -

请求体json示例

{
    "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

发给个人

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": "近况如何?"
          }
        ]
    }
]'

2.推消息v1 版本接口(formData)

发送本地消息接口每次只能发送单条消息

请求体

payload 结构

参数 说明 数据类型 默认值 可否为空 可选值
to 消息接收方,传入String 默认是发给昵称(群名同理), 传入 Json String 结构支持发给备注过的人,比如:--form 'to="{alias: "小号"}"',群名不支持备注名称 String - N -
isRoom 是否发的群消息,formData纯文本只能使用 String 类型,1代表是,0代表否, String 0 Y 1 0
content 文件,本地文件一次只能发一个,多个文件手动调用多次 Binary - N -

请求示例 curl

curl --location --request POST 'http://localhost:3001/webhook/msg?token=[YOUR_PERSONAL_TOKEN]' \
--form 'to=testGroup' \
--form content=@"$HOME/demo.jpg" \
--form 'isRoom=1'

返回值 response 结构

{
  "success": true,
  "message": "Message sent successfully"
}