Tenant Access Token 进行鉴权,彻底与个人飞书账号解绑。*优势*:极大地简化了网络配置,无需配置公网 IP、无需域名、无需繁琐的 Webhook 签名校验,只需服务器能访问外网即可建立安全的双向通信。
部署架构:Linux 云服务器(如阿里云、腾讯云的基础款轻量应用服务器,1核1G配置即可满足)结合 Docker 容器化部署,实现全天候云端运行。
im.message.receive_v1(接收消息事件)。chat_id,仅当该 ID 匹配预设的“源群组”时才放行。sender_type 字段,丢弃所有 sender_type == "bot"(机器人发出)的消息,防止 A 群与 B 群之间产生无限转发风暴。根据业务需求,消息转发建议采用官方原生转发接口 (Forward API),此方案开发成本最低且支持格式最全。
message_id,直接调用 POST /open-apis/im/v1/messages/:message_id/forward 接口。event_id,而应在本地内存或轻量级数据库(如 SQLite / Redis)中缓存已处理过的 message_id。接收到新推送时,若 message_id 已存在则直接丢弃。asyncio.Queue 或 Go 的 Channel)。监听模块收到消息后即刻推入队列,由一个单独的 Worker 消费线程以低于 5 QPS 的速度匀速向目标群组调用发送接口,防止因群聊消息瞬时并发而触发 API 封禁错误。在开发前,需在飞书开发者后台向租户管理员申请并发布以下权限:
im:message.group_msg:获取群组中所有消息(核心权限,用于静默监听源群组内所有人的聊天内容)。im:message:send_as_bot:以应用的身份发消息(用于在目标群组中执行推送)。im:resource(备选):如果未来需要自行下载、解析并重新组装图片或 Word/PDF 文件,必须申请此“获取消息中的资源文件”权限。若仅调用原生 Forward 接口则非必须,但建议一并申请。lark-oapi。Go 使用 oapi-sdk-go。
官方 SDK 已将底层的 Token 获取、刷新以及 WebSocket 长连接的心跳保活机制全部封装,开发者只需实现极简的事件回调函数即可。
需要提前规划或在业务层面注意以下飞书官方的系统级限制: