飞书机器人一键创建腾讯会议:开放平台对接与数据回流实践
做过企业办公自动化的人应该都有体会,飞书和腾讯会议这对组合,说好听点是“双平台协作”,说难听点就是“两套系统各管一段”。飞书这边管群聊、审批、文档,腾讯会议那边管音视频开会,中间那一环——从约会议到开会再到会后数据沉淀——经常是断的。这半年被问得最多的一个问题就是:飞书和腾讯会议到底能不能打通?怎么打通?
这篇文章就是一份完整的对接实践记录。我会从需求拆解、技术选型、权限准备、核心代码、常见问题排查五个层面,把“飞书机器人一键创建腾讯会议——会议状态同步——会后统计表格推送到飞书群”这条链路完整讲清楚。适合企业信息化人员、效率工程师、Python 或 Node.js 开发,以及所有被“人工约会议”折磨过的同事。全程基于飞书开放平台和腾讯会议开放平台的真实 API,拿过来就能照着落地。
1. 项目整体设计:为什么要把飞书和腾讯会议放在一起对接
1.1 需求场景拆解:从“群内约会”到“会后数据回流”
先还原一个很常见的办公现场:行政在飞书群里喊一句“今天下午3点产品评审,腾讯会议链接稍后发”,然后有人去腾讯会议客户端创建会议,再把链接复制回群里。参会人点开链接,发现要登录,会议结束之后大家各写各的纪要,想统计谁参加了、谁没参加,全靠人工问。
这个项目的核心目标,就是把这两套系统用开放接口真正打通,实现三个层面的价值:
- 入口统一:用户在飞书群内发一句话,机器人自动创建腾讯会议,把会议号、入会链接、主持人链接直接推到群里,不用再跳出飞书去操作腾讯会议客户端。
- 通知自动化:会议创建成功后发消息卡片,临近开会定时提醒,会议结束自动推送统计结果。
- 数据回流:会议结束后,中间服务自动拉取参会人列表、入会时长,生成统计表格,通过飞书云文档 API 写入在线表格,再把表格链接推回群里。
如果你只是偶尔开会,手工操作无所谓。但一旦会议变成日常高频动作,比如每天几十场培训、多部门协作、客户沟通,人工那一套就会不断出错:链接发错、时间记错、统计漏人。对接之后,机器人按规则处理,人的参与降到最低。
1.2 技术选型思路:API、机器人、Webhook 怎么搭配
接手这种对接项目时,我建议先做需求边界评估,而不是直接选技术栈。这个项目核心是跨平台调用,一方是飞书开放平台,一方是腾讯会议开放平台,中间必须有一个服务做“翻译官”和“调度员”。
技术选型上,低代码平台确实可以搭出一些“准对接”效果,但往往深度不够。比如飞书多维表格可以记录会议链接,但没法主动调用腾讯会议 API 创建会议;腾讯会议应用市场里也没有官方插件能直接发飞书消息卡片。最终还是要自建中间服务。
我的实际选型是 Python + FastAPI + 飞书官方 Python SDK,理由不复杂:
- Python 生态里飞书 SDK 和腾讯会议 API 的示例代码最全,遇到问题容易搜到答案。
- FastAPI 写异步接口很轻,处理飞书回调、腾讯会议 Webhook 这类 IO 密集场景很合适。
- 飞书官方 SDK 封装了长连接和事件分发,省去自己维护 WebSocket 的心智负担。
架构上,中间服务承担三个职责:
- 统一鉴权:飞书侧和腾讯会议侧的 token 获取、缓存、刷新都收口在一层。
- 格式转换:飞书的卡片消息格式和腾讯会议的 JSON 结构差异很大,中间层做字段映射。
- 业务流程编排:创建会议、发送卡片、接收回调、拉取统计、写入表格,这些动作由前端路由控制。
1.3 边界与风险控制:哪些功能不做,反而省了很多事
这个项目我一开始列了很大一张需求表,包括自动预订会议室资源、实时音视频流接入、语音转写,后来大部分都砍掉了。原因很简单:要么超出开放 API 的能力范围,要么需要额外付费,要么涉及隐私边界。
这里直接给出我最终划定的边界,你可以少走弯路:
- 腾讯会议开放 API 能创建会议、查会议、拉参会明细,但拿不到音视频流本身,实时转写要用腾讯会议的付费“会议转写”能力,而且是产物导出,不是流式输出。
- 飞书机器人能做消息收发和卡片交互,但做不到“模拟用户点击入会”,入会动作必须有客户端或浏览器。
- 涉及企业外部成员的会议,数据回流要注意隐私,参会人手机号、入会 IP 这类敏感字段只用于内部统计,不要随意写入公开文档。
把边界想清楚,后面写代码就不会被“为什么这个接口没有返回我想要的数据”逼疯。对接类项目最忌讳的就是需求无限膨胀,最后交付不了。
2. 对接前置准备:权限、凭证与开发环境
2.1 飞书侧准备工作:创建应用、开通机器人、申请权限
飞书的开放能力都挂在“应用”上。登录飞书开放平台,进入开发者后台,创建一个企业内部应用,类型选“企业自建应用”。创建完成后,你会拿到两个关键凭证:App ID 和 App Secret。App Secret 等同于应用密码,绝对不能泄露。
接下来要开启机器人能力。进入应用详情页,找到“添加应用能力”,选择“机器人”。这里有个特别容易踩的坑:应用改了配置之后必须发布版本,否则机器人根本不生效。开发阶段这个问题尤其常见,很多人改了权限、配了事件订阅,却忘了点发布,结果一直怀疑代码写错了。
然后是权限申请。飞书的权限体系设计原则是“最小权限”,每个能力都要单独申请。这个项目最常用到的权限如下:
| 权限点 | 说明 | 用途 |
|---|---|---|
| im:message | 读取与发送单聊/群组消息 | 机器人接收群里指令 |
| im:message:send_as_bot | 以机器人身份发送消息 | 发送会议通知卡片 |
| contact:user.base:readonly | 读取用户基本信息 | 查询发言人、成员姓名 |
| calendar:calendar | 读写日历 | 可选:把会议同步到飞书日历 |
| docs:doc | 读写云文档 | 可选:向表格写入会议记录 |
| drive:drive | 读写云空间文件 | 可选:上传会议附件 |
权限申请后需要管理员审核。如果你在测试企业里自己开发,管理员就是自己,通常秒过;如果在客户企业里,提前准备一份权限用途说明,否则卡在审批上会非常耗时间。
2.2 腾讯会议侧准备工作:应用创建、接口权限与套餐限制
腾讯会议对接走的是腾讯会议开放平台。用企业管理员账号登录控制台进入开放平台,创建一个应用,类型选“企业应用”或“内部应用”,拿到 Client ID 和 Client Secret。
这里有个隐藏门槛:部分接口需要应用完成“企业认证”,并且开会必须使用企业版或旗舰版账号。个人版账号调用创建会议室接口,通常会被错误码拒回来。如果你只是本地开发测试,务必先确认企业账号版本,否则后面全是无用功。