当前位置:首页>python>用 Python 给飞书发消息,为什么总是排版翻车?

用 Python 给飞书发消息,为什么总是排版翻车?

  • 2026-10-11 18:58:42
用 Python 给飞书发消息,为什么总是排版翻车?

最近在写一些 Python 自动化脚本,把结果直接推送到飞书群。

很日常:

  • 脚本跑完,把结果法群里

  • 给 OpenClaw 发指令

  • 股票价格触发条件后,提醒一下

  • 定时任务执行完,告诉一声

推送的流程也很简单:脚本跑完 -> Webhook -> 飞书群。

但真正跑起来后,问题开始出现:

  • \n (换行符)明明写了,飞书里却挤成一行
  • Markdown 一半生效,一半像纯文本
  • 消息发着发着卡住,甚至显示 15 秒超时

本文想解决的问题是:

同样是用 Python 调飞书 Webhook,为什么有的消息排版稳定,有的却处处翻车?到底该怎么选,才能既稳定又好看?

1 一句话结论:代码直连,用群自定义机器人

如果你的消息来源是 Python / Node / Java 脚本,目标只是把结果发进群里,不涉及审批、流转、人工参与:

优先选群自定义机器人(open.feishu.cn)。它是飞书中,最接近消息直投的通道。

2 Webhook 本身并不复杂,复杂的是用谁接

先来了解 Webhook 的原理:

  • 它是一个 URl, 用于接收 HTTP POST

  • 用途:你往这儿发 JSON,对方收到就处理

  • 关键点:接收端用什么系统来处理你的请求

2.1 两种常见 Webhook

2.1.1 群自定义机器人(推荐)

  • 域名:open.feishu.cn

  • 机制:请求 -> 校验 -> 直接投递到群

  • 特点:

    • 原生支持 Markdown / 消息卡片
    • \n
       换行稳定可控
    • 不做多余解析,几乎不超时
    • 偏工程化
  • 适合场景:  

    • 自动化结果推送
    • 股票 / 指标 / 条件触发提醒
    • 系统告警、只读通知

2.1.2 飞书捷径 / 集成平台

  • 域名:www.feishu.cn/flow

  • 机制:请求 -> 解析 -> 变量映射 -> 工作流节点 -> 再发消息

  • Flow 的设计目标是:

    • 表单触发审批

    • 多人参与流程

    • 多系统联动

当你往它塞一段结构复杂的 JSON 消息卡片时,它会非常认真地尝试:

  • 解析
  • 拆字段
  • 反序列化
  • 映射成流程变量。层级一深,解析时间就直线上升。

2.2 核心差别

对比项
群自定义机器人
飞书捷径(Flow)
功能
直接发消息
工作流引擎
面向人群
开发者
业务/非技术人员
Markdown
原生稳定
容易出现格式问题
JSON 复杂度
没问题
层级一深就卡
超时风险
极低
很高

3 分钟配置一个飞书推送

3.1 获取 Webhook url

在飞书群里:

  1. 右上角 ... → 群设置
  2. 群机器人 → 添加机器人
  3. 选择 自定义机器人

正确的地址长这样:

https://open.feishu.cn/open-apis/bot/v2/hook/xxxx

如果你拿到的是 www.feishu.cn/flow/...,是飞书捷径,不适合直接塞复杂消息。

3.2 构造并发送消息卡片

下面这个例子,用 python 模拟的一个日常通知场景,消息通过 json 结构化。

import requestsimport jsonwebhook_url = "https://open.feishu.cn/open-apis/bot/v2/hook/你的ID"payload = {    "msg_type": "interactive",    "card": {        "header": {            "title": {                "tag": "plain_text",                "content": "盯盘监控提醒"            },            "template": "red"        },        "elements": [            {                "tag": "markdown",                "content": (                    "**贵州茅台(600519)**\n"                    "信号:**SELL**\n"                    "原因:死叉\n\n"                    "**阿里巴巴-W(09988)**\n"                    "信号:**SELL**\n"                    "原因:均线压制"                )            }        ]    }}requests.post(    webhook_url,    headers={"Content-Type": "application/json"},    data=json.dumps(payload),    timeout=10)

飞书端获取的消息如下:

4 写在最后

Webhook 能不能稳定、排版能不能正常,关键是:你把消息交给了谁来处理。

群自定义机器人做的事情很单一:接住请求,把内容原样送进群里。而 Flow 更像一套流程系统,一旦用它来顺便发消息,复杂度就会被放大。

通道选对了,后面的试错成本,真的会少很多。

你现在用飞书接收消息吗?欢迎在评论区聊聊你的使用场景。  

最新文章

随机文章