飞书/钉钉AI机器人部署教程:从零搭建企业自动化助手
网站发布教程 · 保姆级部署 · Webhook / 企业应用 / AI模型接入 / 常见问题排查

一、文章摘要
这是一篇面向新手、运营人员、站长和企业自动化搭建者的飞书/钉钉 AI 机器人部署教程。文章从“群机器人 Webhook 推送”讲到“企业应用机器人 AI 对话”,覆盖准备工作、机器人创建、安全签名、Python/Node/n8n 服务部署、AI 模型接入、消息格式、上线检查和常见报错排查。读者可以照着教程快速做出一个能在飞书或钉钉群里推送日报、告警、内容审核结果、工作流通知,甚至能接入 DeepSeek、OpenAI、通义千问、Ollama 等模型进行问答的企业 AI 助手。
提示:如果只是把系统消息推送到群里,优先选择“自定义机器人 + Webhook”;如果要让员工在群里 @机器人提问、做知识库问答或审批辅助,建议选择“企业应用机器人 + 回调服务”。
二、适合谁阅读?
- 想给公司飞书群/钉钉群接入 AI 日报、监控报警、文章发布提醒的人;
- 想把 DeepSeek、OpenAI、通义千问、Ollama 等模型接入办公群的人;
- 正在做 AI 自动化工作流、WordPress 自动发文、客服问答、知识库检索的人;
- 不想直接写复杂企业应用,想先从 Webhook 快速入门的新手;
- 需要把机器人部署到服务器、Docker、n8n 或云函数上的站长/运维。
三、先看总流程:三种部署路线怎么选?

| 路线 | 适合场景 | 优点 | 注意事项 |
| Webhook 推送型 | 日报、告警、发布通知、表格提醒 | 部署最快,只要能 POST 请求即可 | 通常只能主动推送,不适合复杂对话 |
| 企业应用机器人 | 群聊问答、知识库、AI客服、审批助手 | 能力完整,可接收事件和调用开放接口 | 需要企业管理员审批、权限配置和回调服务 |
| n8n/低代码型 | RSS、表格、数据库、定时任务串联 | 适合运营和站长,改流程方便 | 复杂签名、回调校验仍可能需要代码节点 |
| 本地模型型 | 内网知识库、私有数据、安全合规场景 | 数据可控,可配 Ollama/LocalAI/vLLM | 需要服务器资源和模型运维能力 |
四、飞书/钉钉机器人到底是什么?
从功能上看,飞书和钉钉机器人可以分为两类:一类是“群自定义机器人”,核心能力是通过 Webhook 向指定群聊推送消息;另一类是“企业应用机器人”,可以作为企业应用的一部分接收事件、处理回调、调用更丰富的开放接口。
1. 自定义机器人:适合先跑通
自定义机器人最适合新手入门。你在群聊里添加一个机器人,平台会生成一个 Webhook 地址。之后你的脚本、n8n 工作流、监控系统、AI 服务只要向这个地址发送 HTTP POST 请求,就能把消息推送到群里。
2. 企业应用机器人:适合做“真正的 AI 助手”
如果你希望机器人能接收用户消息、处理 @提问、读取审批或通讯录权限、调用平台接口,就需要创建企业内部应用,并添加机器人能力。这个方案更强,但步骤也更多:创建应用、配置权限、发布审批、配置回调地址、校验签名、处理事件,再把消息交给 AI 模型。
五、推荐架构:把机器人入口和 AI 服务分开

推荐把系统拆成四层:平台入口层、消息处理层、AI 模型层、业务系统层。这样做的好处是:飞书和钉钉平台变更时,只需要改入口适配;AI 模型换供应商时,只需要改模型调用;业务场景增加时,可以复用已有消息服务。
六、部署前准备清单
| 准备项 | 建议配置 | 说明 |
| 账号与权限 | 飞书/钉钉账号;需要时准备企业管理员权限 | 自定义机器人通常在群内创建;企业应用往往需要管理员审批。 |
| 服务器 | Linux VPS、云服务器、内网服务器、云函数均可 | 只做主动推送不一定需要公网入口;接收回调必须有公网 HTTPS。 |
| 开发环境 | Python 3.10+ 或 Node.js 20+ | Python 适合新手;Node.js 适合前端和 Serverless。 |
| AI 模型 | DeepSeek、OpenAI、通义千问、Ollama、LocalAI、vLLM | 推荐优先使用 OpenAI-compatible API,便于切换模型。 |
| 安全配置 | 签名密钥、环境变量、IP 白名单、HTTPS | 不要把 Webhook 或 Secret 写进网页前端、GitHub 公开仓库。 |
| 可选工具 | Docker、n8n、Nginx、PM2、systemd | 适合长期运行和生产部署。 |
七、飞书 AI 机器人部署流程
方案 A:飞书自定义机器人 Webhook 推送
适合做 AI 日报、监控报警、内容发布通知、运营数据提醒。基本流程如下:
- 在飞书 PC 客户端进入目标群聊;
- 打开群设置,找到“机器人 / Bots”;
- 选择“添加机器人”,添加“自定义机器人”;
- 设置机器人名称、头像和描述;
- 复制 Webhook 地址;
- 开启安全设置,建议使用签名校验;
- 用 curl、Python 或 n8n 发送一条测试消息。
提示:飞书自定义机器人适合“向群里推送消息”。如果要接收群成员提问并回复,建议使用企业应用机器人,或在工作流里另行配置回调入口。
飞书 Python 测试脚本
import os
import time
import hmac
import hashlib
import base64
import requests
FEISHU_WEBHOOK = os.getenv(“FEISHU_WEBHOOK”)
FEISHU_SECRET = os.getenv(“FEISHU_SECRET”, “”)
def make_feishu_sign(timestamp: str, secret: str) -> str:
# 飞书自定义机器人签名常见写法:timestamp\nsecret 参与 HMAC-SHA256 后 Base64
string_to_sign = f”{timestamp}\n{secret}”
hmac_code = hmac.new(string_to_sign.encode(“utf-8”), digestmod=hashlib.sha256).digest()
return base64.b64encode(hmac_code).decode(“utf-8”)
def send_feishu_text(text: str):
payload = {
“msg_type”: “text”,
“content”: {“text”: text}
}
if FEISHU_SECRET:
timestamp = str(int(time.time())) # 飞书通常使用秒级时间戳
payload[“timestamp”] = timestamp
payload[“sign”] = make_feishu_sign(timestamp, FEISHU_SECRET)
resp = requests.post(FEISHU_WEBHOOK, json=payload, timeout=15)
print(resp.status_code, resp.text)
if __name__ == “__main__”:
send_feishu_text(“AI机器人测试:飞书消息推送成功 ✅”)
方案 B:飞书企业应用机器人 AI 对话
如果你的目标是“群里 @机器人,机器人调用 AI 模型后回答”,建议走企业应用路线。大致流程如下:
- 进入飞书开放平台,创建企业自建应用;
- 添加“机器人”能力;
- 配置应用权限,例如接收消息、发送消息、读取用户基础信息等;
- 在“事件订阅”中配置回调方式,可选择请求地址或长连接;
- 部署后端服务,校验平台回调,解析用户消息;
- 调用 AI 模型生成回答;
- 通过飞书开放接口或回复机制把答案发回群聊。
企业应用机器人更适合做知识库问答、制度查询、运维助手、客服助手。部署时要重点关注权限审批、回调地址验证、事件订阅、消息去重和敏感信息过滤。
八、钉钉 AI 机器人部署流程
方案 A:钉钉自定义机器人 Webhook 推送
钉钉自定义机器人同样适合做群通知。基本步骤如下:
- 打开钉钉客户端,进入目标群聊;
- 进入群设置,找到“机器人”;
- 选择“添加机器人”,选择“自定义机器人”;
- 填写机器人名称、头像和说明;
- 配置安全设置,建议至少启用加签,必要时叠加关键词或 IP 白名单;
- 复制 Webhook 地址;
- 用脚本发送 text、markdown、link 或 ActionCard 消息。
钉钉 Python 测试脚本
import os
import time
import hmac
import hashlib
import base64
import urllib.parse
import requests
DINGTALK_WEBHOOK = os.getenv(“DINGTALK_WEBHOOK”)
DINGTALK_SECRET = os.getenv(“DINGTALK_SECRET”, “”)
def build_dingtalk_url(webhook: str, secret: str) -> str:
if not secret:
return webhook
timestamp = str(round(time.time() * 1000)) # 钉钉使用毫秒级时间戳
string_to_sign = f”{timestamp}\n{secret}”
hmac_code = hmac.new(
secret.encode(“utf-8”),
string_to_sign.encode(“utf-8”),
digestmod=hashlib.sha256
).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
connector = “&” if “?” in webhook else “?”
return f”{webhook}{connector}timestamp={timestamp}&sign={sign}”
def send_dingtalk_markdown(title: str, markdown: str):
url = build_dingtalk_url(DINGTALK_WEBHOOK, DINGTALK_SECRET)
payload = {
“msgtype”: “markdown”,
“markdown”: {
“title”: title,
“text”: markdown
}
}
resp = requests.post(url, json=payload, timeout=15)
print(resp.status_code, resp.text)
if __name__ == “__main__”:
send_dingtalk_markdown(
“AI机器人测试”,
“### AI机器人测试\n\n钉钉消息推送成功 ✅”
)
提示:钉钉的安全策略常见有关键词、加签、IP 白名单。生产环境不建议只用关键词;更稳妥的做法是“加签 + IP 白名单”,并定期轮换密钥。
方案 B:钉钉企业内部应用机器人
如果要做可交互的 AI 助手,例如“@机器人 总结这个链接”“帮我查某个制度”“生成本周工作周报”,建议使用企业内部应用或机器人应用能力。通常需要完成以下工作:
- 在钉钉开放平台创建企业内部应用;
- 配置机器人能力、事件订阅或回调地址;
- 按需申请消息、通讯录、审批、群会话等权限;
- 部署后端接口并完成签名验证;
- 解析用户消息,做权限判断和敏感词过滤;
- 调用 AI 模型;
- 把结果以文本、Markdown、卡片等形式返回。
九、接入 AI 模型:推荐使用 OpenAI-compatible API
为了后续方便切换模型,建议把模型调用封装成统一接口。无论底层是 DeepSeek、OpenAI、通义千问、Moonshot、Ollama、LocalAI、vLLM,只要提供 OpenAI-compatible 接口,就可以使用类似的调用方式。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv(“AI_API_KEY”),
base_url=os.getenv(“AI_BASE_URL”, “https://api.deepseek.com”)
)
def ask_ai(user_text: str) -> str:
resp = client.chat.completions.create(
model=os.getenv(“AI_MODEL”, “deepseek-chat”),
messages=[
{“role”: “system”, “content”: “你是企业办公群里的AI助手,回答要简洁、准确、可执行。”},
{“role”: “user”, “content”: user_text}
],
temperature=0.3,
)
return resp.choices[0].message.content
十、最小可运行后端:FastAPI 版本
下面这个示例适合把“外部系统提交的问题”转成 AI 答案,再推送到飞书或钉钉群里。实际生产环境还应加入鉴权、限流、日志、异常重试和敏感信息过滤。
import os
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class AskPayload(BaseModel):
platform: str # feishu 或 dingtalk
question: str
@app.post(“/ai-bot/ask”)
def ai_bot_ask(payload: AskPayload):
answer = ask_ai(payload.question)
if payload.platform == “feishu”:
send_feishu_text(answer)
elif payload.platform == “dingtalk”:
send_dingtalk_markdown(“AI助手回复”, answer)
else:
return {“ok”: False, “error”: “unsupported platform”}
return {“ok”: True, “answer”: answer}
# 启动:uvicorn app:app –host 0.0.0.0 –port 8000
十一、n8n 低代码部署方案
如果你前面已经部署过 n8n,可以用低代码方式快速实现飞书/钉钉 AI 机器人。推荐工作流如下:
- Cron 节点:每天固定时间触发;
- HTTP Request 节点:读取 RSS、WordPress、数据库、表格或业务接口;
- AI 节点或 HTTP Request:调用 DeepSeek/OpenAI/Ollama 生成摘要;
- Code 节点:必要时计算飞书/钉钉签名;
- HTTP Request 节点:把消息发送到飞书/钉钉 Webhook;
- Error Trigger:失败时推送错误详情到管理员群。
n8n 的优势是改流程快、可视化强,适合内容站、运营日报、自动发文通知、客户线索汇总等场景。缺点是复杂的企业应用回调和签名校验仍需要少量代码。
十二、消息格式建议:不要只发纯文本
| 消息类型 | 飞书适用 | 钉钉适用 | 推荐场景 |
| text 文本 | 支持 | 支持 | 简单提醒、测试消息 |
| markdown / 富文本 | 支持富文本/卡片 | 支持 Markdown | 日报、周报、监控摘要 |
| link 链接 | 可用卡片/富文本实现 | 支持 link | 文章发布、工单跳转、报表链接 |
| interactive / card | 支持飞书卡片 | 支持 ActionCard 等 | 审批提醒、按钮操作、结构化通知 |
| image 图片 | 支持 | 支持 | 图表、告警截图、封面图预览 |
十三、生产环境上线检查清单
- Webhook、Secret、API Key 全部放到环境变量或密钥管理工具中;
- 不要把飞书/钉钉 Webhook 地址提交到公开仓库;
- 开启签名校验,生产环境尽量叠加 IP 白名单;
- 后端服务开启 HTTPS,回调入口限制请求大小;
- AI 模型调用增加超时、重试和降级方案;
- 对用户输入做敏感信息过滤,避免把内部隐私发给外部模型;
- 记录日志时隐藏 token、secret、手机号、身份证号等敏感字段;
- 机器人回复设置频率限制,避免无限循环刷屏;
- 把测试机器人和生产机器人分开;
- 至少准备一个管理员告警通道。
十四、常见问题排查

1. 飞书/钉钉机器人可以直接接入 ChatGPT 或 DeepSeek 吗?
可以,但建议通过你自己的后端服务中转。后端负责保存密钥、校验签名、控制权限、过滤敏感内容,再调用模型接口。不要把模型 API Key 写在前端页面或公开脚本中。
2. 自定义机器人和企业应用机器人应该怎么选?
只做通知推送,选自定义机器人;要接收用户消息、做群聊问答、调用平台开放接口,选企业应用机器人。
3. 为什么 Webhook 测试成功,但生产环境偶尔失败?
常见原因是网络超时、平台限流、签名时间戳不准、模型响应过慢或消息格式不合法。建议加重试、超时控制、日志和失败告警。
4. 飞书和钉钉能共用一套 AI 后端吗?
可以。建议后端统一成“平台适配层 + AI 服务层 + 业务层”。平台适配层分别处理飞书/钉钉格式,AI 服务层统一调用模型。
5. 可以接入本地 Ollama 模型吗?
可以。如果服务器能访问 Ollama 的本地接口,可以把 AI_BASE_URL 指向 Ollama、LocalAI 或 vLLM 的 OpenAI-compatible 服务。
6. 群里多人同时提问会不会混乱?
会有这个风险。建议对每条消息保存 message_id、chat_id、user_id,做消息去重、上下文隔离和并发队列。
7. 机器人回复太长怎么办?
可以在 Prompt 中限制字数,或者把长答案拆成“摘要 + 链接”,详细内容写入文档、知识库或网页。
8. 如何防止机器人泄露企业资料?
使用企业内部模型或本地模型;对外部模型做脱敏;设置白名单群聊;禁止机器人处理身份证、合同、财务、客户隐私等敏感内容。
官方参考来源
- 飞书开放平台:自定义机器人使用指南:https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot?lang=zh-CN
- 飞书开放平台:机器人概述:https://open.feishu.cn/document/client-docs/bot-v3/bot-overview?lang=zh-CN
- 飞书开放平台:使用自定义机器人发送飞书卡片:https://open.feishu.cn/document/feishu-cards/quick-start/send-message-cards-with-custom-bot?lang=zh-CN
- 飞书开放平台:事件订阅与长连接配置:https://open.feishu.cn/document/server-docs/event-subscription-guide/event-subscription-configure-/request-url-configuration-case
- 钉钉开放平台:创建自定义机器人:https://open.dingtalk.com/document/dingstart/custom-bot-creation-and-installation
- 钉钉开放平台:自定义机器人安全设置:https://open.dingtalk.com/document/robots/customize-robot-security-settings
- 钉钉开放平台:机器人消息类型:https://open.dingtalk.com/document/development/robot-message-type