ChatGPT与钉钉/飞书如何打通?团队IM集成配置【教程】
团队日常用的钉钉或飞书,能不能直接调ChatGPT?当然可以,而且不用来回切换网页、复制粘贴。关键在于通过最新开放平台创建自定义机器人,再对接API——身份认证、密钥获取、可信域名配置、消息加解密逻辑,这几步一个都不能少。下面就把飞书和钉钉的完整接入方式拆开来讲,顺便把那些容易踩坑的配置细节一并交代清楚。

飞书端接入:创建自定义机器人并绑定ChatGPT API
先从飞书说起。登录飞书管理后台,进入「应用管理」,右上角点击「创建应用」→ 选择「自定义应用」,填个名称比如“AI助手”,记得勾选「机器人」能力,然后点「创建」。这一步没什么技术含量,但应用名称最好起个能一眼认出来的,方便后面管理。
进入新应用的「机器人」页签,点击「启用机器人」,系统会生成一个
Webhook地址
接下来到「凭证与基础信息」页签,记录下
App ID
App Secret
然后就是动手写服务端代码了。在你自己的服务器上部署一个HTTP服务(Flask或FastAPI都行),接收飞书推送的JSON消息。解析出其中的text字段,拼装成OpenAI兼容的格式,拿你的ChatGPT API Key去请求openai.com/v1/chat/completions。拿到回复后,再按飞书消息卡片的格式(message_id + reply)调用飞书「发送回复」接口把结果传回去。这里特别提醒:
消息签名验证绝对不能跳过
钉钉端接入:使用「自定义机器人」+ 加签模式
钉钉这边有两个路子,看你的需求选。
方法一:免开发快捷启用(仅限简单问答)
在钉钉群聊天窗口右上角点「+」→ 选择「智能群助手」→ 搜索并添加「ChatGPT」或者经过认证的第三方插件(比如通义灵码、智谱清言这类替代方案)→ 按引导授权就能用基础问答了。这种方式不暴露API密钥,设置简单,但缺点是没法自定义提示词,也访问不了私有知识库,适合尝鲜。
方法二:自主部署(推荐生产环境)
登录钉钉开发者后台,进入「应用开发」,创建「自定义机器人」,填好名称、上传头像。关键一步:开启「加签」并保存生成的
密钥
把这个Webhook地址配置到你服务器的接收端点上。每次钉钉推消息过来,必须用保存的密钥按HMAC-SHA256算法校验timestamp+sign,校验不过的直接拒收。通过校验后,提取text内容,调ChatGPT API。返回的结果要封装成钉钉支持的markdown或actionCard格式,再POST回同一个Webhook地址。
注意一个限额:钉钉对自定义机器人每分钟最多发送20条消息,超频会被临时封禁。如果团队使用频率高,得申请「企业内部应用」并走OAuth2.0授权流程,才能突破这个限制。
关键共性配置项:签名验证与消息格式对齐
飞书和钉钉的配置虽然各有细节,但有几个共通的要点必须统一处理好,否则机器人要么跑不起来,要么安全风险巨大。
① 飞书消息签名验证
从HTTP Header中取出X-Feishu-Signature,用App Secret对原始请求体(body)做HMAC-SHA256,Base64编码后比对。不校验?那任何HTTP请求都能冒充飞书往你的机器人发消息,后果可想而知。
② 钉钉加签计算
将timestamp + " " + 密钥 拼接后做HMAC-SHA256,再Base64编码,与Header中的sign字段比对。时间戳误差超过1小时直接失效——这也是为了防止重放攻击。
③ 统一处理用户指令
无论飞书还是钉钉,用户@机器人发送的文本里常见换行、emoji、@人ID这些噪声。必须清洗掉非文字字符,只保留核心问题,否则ChatGPT可能被干扰,生成一堆无关回复。
④ 回复长度截断
飞书卡片正文限制3000字符,钉钉markdown消息限制4000字符。如果ChatGPT返回的内容超长,别一股脑全塞进去——按句子切分,分多次reply,否则整条消息会被丢弃。手工切分虽然麻烦,但比丢消息强。
-
- 关于旅程的抖音网名有哪些
- 角色扮演 | 1
- 网名