Written-by: Chief 用户 2026-11-10 16:37(Asia/Shanghai)= 08:37Z 报:**在飞书里 @ 这个 Bot 不会回复**(实例:用户自己的 `flybot98b8ecba`)。原话到这里截断("不会回复,然后"),细节待补。 ## 代码今天怎么走(`main` `3d1165f6` 读) - 入站:`core/src/host/feishu-inbound.js` 的 `readEvent` 只接受 `message_type === "text"`;正文里 `@_user_\d+` 占位符会被**剥掉**再交给 `remote-chat.deliver`。 - 谁能起 turn:只允许 owner 的 open_id 与连接器行上 Allow 过的 open_id,其余记 `refused`(行上可见"被拒的人")。 - 出站:`core/src/host/connectors.js` 的 `feishuReply` 按 handle `feishu:oc_…` 用 app token 发回同一个 chat;**webhook 模式没有 chat id**,只能发到 webhook 指向的那个群。 - 连接器行有四种状态:`off` / `connecting` / `ready` / `error`(`STATES`)。 ## 所以 @ 不回可能落在四类之一 1. 连接器只连了 **webhook(第一期)**,没配 App ID/Secret 开 **app 模式** —— 没有长连接,@ 根本不会到进程里,本地面板也不会有事件。 2. app 模式已连,但飞书应用那边**没订阅** `im.message.receive_v1`,或缺群消息/@机器人权限(`im:message.group_at_msg`)—— 私聊能收、群里 @ 收不到,这类在飞书控制台的"事件与回调"里看得出。 3. 长连接状态不是 `ready`(`error`),或发言人的 open_id 不在 owner/allowed 名单 → 被 `refused`。 4. 只发了一个 "@机器人" 没有其它文字:`readEvent` 先判 `text.trim()` 非空,再把占位符剥掉,剥完剩空串 —— 这种消息起不了有意义的一轮。 ## 需要补的事实(补上就能判是配置还是缺陷) - 私聊里能回吗?群里 @ 不回还是两边都不回? - 设置里飞书连接器行现在是什么状态(off / connecting / ready / error,error 后面那句话)? - 是在哪种会话里 @ 的:单聊、群(Bot 在群里吗)、还是话题? - @ 之后发了什么文字(是否只有 @ 和空白)? 补到之后:若是配置/权限,写清飞书控制台要点哪几项;若是代码缺陷,按 03 口径派实现线并带红先。
Activity
Birfy commentedon Nov 10, 2026
Written-by: Chief
用户 2026-11-10 16:44(上海)/ 08:44Z 回答:只在群里试过 @,还没试过私聊。
所以现在按这个顺序缩小范围:
im.message.receive_v1、要有「获取群组中 @ 机器人消息」的权限、机器人本身要在群里);不回=连接器没开 app 模式(只有 webhook 就没有长连接)或长连接状态是error。off/connecting/ready/error哪一个,error 后面那句话。顺带记两个已知的坑(不是这次报的事,但会影响判读):
readEvent会先判非空、再把@_user_N占位符剥掉,剥完是空串 —— 这种消息起不了一轮(代码现状,不是配置问题)。README.md/README.zh.md/docs/都没有 guild 级说明「要订阅哪个事件、要开哪个权限、机器人怎么进群」,只有连接器行上一个指向飞书官方文档的外链。等这次定位完,无论结论是配置还是缺陷,都该补一页docs/(或 README 一节),把这几条写死。Birfy commentedon Nov 10, 2026
Written-by: Chief
用户 16:47(上海)/ 08:47Z 补了截图,结论已经能定:
截图里的机器人是「自定义机器人(Custom Bot)」
描述行写着
Push Custom Service Messages to Feishu Via webhook,群里还有一条FlyBot is connected.—— 那正是连接器 connect 时的测试消息(FEISHU_TEST_TEXT)。也就是说飞书行现在是 webhook 模式。要 @ 有回复,只能换 app 模式
im.message.receive_v1);im:message.group_at_msg这类)+ 发消息(im:message:send_as_bot);换过去之后还有一道门,现在没有界面
进站只允许「owner 的
open_id」或行上allowed名单(connector-allow)。owner 的 open_id 来自 config 的feishu.ownerOpenId,仓库里没有设置项能填它(只有docs/subsystems/core-host.md的叙述)。ready,但每次 @ 都"没反应",行上出现一个 refused sender。所以这条 issue 建议这样收
docs/一页,写死事件订阅、权限、拉群、owner open_id 四步;(c) 行上补 owner open_id 的填写/自动识别(例如 app 模式连上后由某次connector-allow反向写入)。