清明假期第一天,深夜 11 点 57 分。
我刚把第二篇专利送进 CELA,论文也标上了 SUBMISSION-READY,本该安心放假。但手痒的人是不会停下来的。
"给你配上飞书吧。"
小飞棍是谁
先介绍一下人物关系。
小龙虾是我的 AI 助手,跑在 OpenClaw 上,用 CopilotX 提供的无限 Claude API 驱动。两个月前的一个深夜,我给了它名字、灵魂和 emoji。从此它活跃在 WebChat 和 Telegram 里——帮我 Review 代码、写博文、甚至陪我深夜聊 SoulPort 专利的 claim 结构。
但小龙虾只会说两种渠道的话。WebChat 在电脑上好用,Telegram 在国内得翻墙——手机上想随时找它聊两句,总得先开 VPN,这个摩擦成本有点烦。
飞书在国内不需要翻墙,手机端体验好,开放平台的长连接模式又不需要公网服务器。对我这种 gateway 跑在本地 MacBook 上的场景,是目前最省事的国内移动端方案。(微信的接入也在计划里,等 OpenClaw 官方支持后再搞。)
所以,今晚的任务很简单:让小龙虾住进飞书。
至于"小飞棍"这个名字——嗯,就是随手打的。飞书的棍。别问。
十分钟的活儿
OpenClaw 对飞书的支持是内置的,不需要额外安装插件。整个流程分两步:飞书开放平台创建应用 + OpenClaw 配置文件加几行 JSON。
飞书那边
在飞书开放平台创建企业自建应用,拿到 App ID 和 App Secret。然后三件事:
- 配权限:在权限管理页面点"批量开通",粘贴以下 JSON:
{
"scopes": {
"tenant": [
"aily:file:read", "aily:file:write",
"application:application.app_message_stats.overview:readonly",
"application:application:self_manage", "application:bot.menu:write",
"cardkit:card:write", "contact:user.employee_id:readonly",
"corehr:file:download", "docs:document.content:read", "event:ip_list",
"im:chat", "im:chat.access_event.bot_p2p_chat:read",
"im:chat.members:bot_access", "im:message",
"im:message.group_at_msg:readonly", "im:message.group_msg",
"im:message.p2p_msg:readonly", "im:message:readonly",
"im:message:send_as_bot", "im:resource",
"sheets:spreadsheet", "wiki:wiki:readonly"
],
"user": [
"aily:file:read", "aily:file:write",
"im:chat.access_event.bot_p2p_chat:read"
]
}
}
- 启用机器人能力:应用能力 → 机器人 → 开启
- 事件订阅:选"使用长连接接收事件",添加
im.message.receive_v1



长连接模式意味着不需要公网 URL、不需要 webhook——飞书主动通过 WebSocket 把消息推过来,本地 gateway 直接收。
OpenClaw 那边
把 App ID 和 App Secret 写进 ~/.openclaw/openclaw.json:
{
"channels": {
"feishu": {
"enabled": true,
"dmPolicy": "pairing",
"accounts": {
"main": {
"appId": "cli_xxxxxxxxxxxxxxxx",
"appSecret": "your-app-secret-here"
}
}
}
}
}
重启 gateway。
差点翻车的 botName
说"十分钟的活儿",其实中间翻了一次车。
我让小龙虾帮我配置——它读完 OpenClaw 的飞书文档后,照着文档里的示例写了配置,包括一个 botName 字段:
{
"accounts": {
"main": {
"appId": "cli_xxx",
"appSecret": "xxx",
"botName": "小飞棍"
}
}
}
Gateway 当场拒绝启动:
channels.feishu.accounts.main: invalid config: must NOT have additional properties
文档里写着,schema 验证不认。 这种"文档和实现不一致"的坑,但凡写过代码的人都懂那股子熟悉的无奈。
删掉 botName,重启,搞定。
小龙虾在日志里安静地报道了好消息:
feishu[main]: bot open_id resolved: ou_c40433f19fcb8e52e5781a0a63dc699f
feishu[main]: starting WebSocket connection...
feishu[main]: WebSocket client started
三行日志,一个新世界。
配对仪式
OpenClaw 的飞书频道默认是 dmPolicy: "pairing" 模式——第一次给机器人发消息时,它会回一个配对码,主人在终端敲一行命令确认身份:
openclaw pairing approve feishu <CODE>
这个设计挺优雅的。不需要提前知道自己的飞书 Open ID,也不需要翻文档找 allowlist 的格式,发一条消息、输一个码,就完成了身份绑定。

配对完成后,在飞书里给小飞棍发消息,小龙虾就会回复。WebChat、Telegram、飞书——同一个灵魂,三个入口。
附赠的惊喜
配好飞书后,我发现 Gateway 日志里多了几行:
feishu_doc: Registered feishu_doc, feishu_app_scopes
feishu_chat: Registered feishu_chat tool
feishu_wiki: Registered feishu_wiki tool
feishu_drive: Registered feishu_drive tool
feishu_bitable: Registered bitable tools
OpenClaw 自动注册了五个飞书插件工具——文档、聊天、知识库、云文档、多维表格。也就是说,小龙虾不只是能在飞书里聊天,它还能帮我操作飞书的文档和知识库。
这不在今晚的计划里,但这种"配了一个渠道,白送一堆能力"的体验,挺爽的。
家族合照
现在小龙虾的渠道全家福:
| 渠道 | 名字 | 接入时间 | 主要用途 |
|---|---|---|---|
| WebChat | 小龙虾 | 2 月 11 日 | 电脑端长对话、代码 Review |
| Telegram | 小龙虾助手 | 2 月 12 日 | 海外移动端 |
| 飞书 | 小飞棍 | 4 月 5 日 | 国内移动端(免翻墙) |
三个入口,一个 gateway,一条灵魂。
这次接入只花了十分钟——如果不算那个 botName 的话。但正是这种"文档写了、代码没跟上"的小插曲,才让配置过程有了点人味儿。
清明假期的第一天,凌晨零点刚过,小飞棍上线了。
晚安。🦞

