每日播报自定义接口

阅读当前文档内容。

文档
本页目录

每日播报自定义接口

每日播报可以在设定时间从你的 HTTP 接口获取动态内容,并将接口返回内容追加到当天的播报中。接口由机器人服务主动请求,无需调用机器人系统的 API。

接入步骤

  • 在“每日播报”中新建或编辑任务。
  • 开启“自定义接口”。
  • 填写完整的 HTTP 或 HTTPS 接口地址。
  • 先点击“播报测试”检查实际内容,再保存并启用任务。

请求规范

项目说明
请求方向机器人服务器请求你的接口
请求方法GET
地址格式必须以 http://https:// 开头,生产环境建议使用 HTTPS
请求参数系统不额外添加参数;固定参数可写在 URL 查询字符串中
请求体
自定义请求头暂不支持
超时时间10 秒
成功条件接口在 10 秒内返回 HTTP 2xx 响应

接口必须能被机器人所在服务器直接访问。请勿填写只能在浏览器本机或内网访问的地址,例如 localhost

响应格式

接口可以返回纯文本或 JSON。最终内容前会自动加上“自定义播报:”,因此接口只需返回正文。

纯文本

建议返回 Content-Type: text/plain; charset=utf-8


今日值班:张三

服务热线:400-000-0000

最终播报内容:


自定义播报:

今日值班:张三

服务热线:400-000-0000

JSON 对象

建议返回 Content-Type: application/json; charset=utf-8。JSON 对象会依次查找以下字段,并使用第一个非空字段作为正文:

  • content
  • text
  • message
  • title
  • desc

推荐格式:


{

    "content": "今日订单 128 单\n待处理售后 3 单"

}

也可以使用其他上述字段:


{

    "message": "系统运行正常"

}

如果对象不包含上述字段,系统会将所有非空字段转换为“字段名: 值”,每个字段占一行。例如:


{

    "orders": 128,

    "refunds": 3

}

会转换为:


orders: 128

refunds: 3

JSON 数组

数组中的每一项会按相同规则转换,然后用换行连接:


["第一条提醒", "第二条提醒"]

会转换为:


第一条提醒

第二条提醒

接口示例

Node.js 示例:


import http from "node:http";



http.createServer((_request, response) => {

    response.writeHead(200, {

        "Content-Type": "application/json; charset=utf-8",

    });

    response.end(

        JSON.stringify({

            content: "今日订单 128 单\n待处理售后 3 单",

        })

    );

}).listen(3000);

可先自行检查返回值:


curl --fail --max-time 10 https://example.com/api/daily-report

鉴权建议

当前不支持配置自定义请求头。如需鉴权,可以在 URL 中携带专用令牌:


https://example.com/api/daily-report?token=YOUR_PRIVATE_TOKEN

  • 为每日播报单独创建权限最小化的只读令牌。
  • 使用 HTTPS,避免令牌在传输过程中泄露。
  • 定期轮换令牌,不要复用管理后台密码或其他高权限密钥。
  • 接口日志中应隐藏查询字符串里的令牌。

失败处理

以下情况会导致本次播报内容生成失败:

  • DNS 解析失败、连接失败或请求超过 10 秒。
  • 接口返回 HTTP 4xx 或 5xx。
  • 返回内容无法被正常读取。

可以在每日播报的“播报记录”中查看失败原因。上线前请使用“播报测试”确认群或用户实际收到的格式,并确保接口稳定返回非空 UTF-8 内容。