Files
2026-09-02 11:44:52 +08:00

55 lines
2.5 KiB
Markdown

# IM EventKey 与底层消费
高频消息、reaction、已读和撤回优先 `dws event +listen-im`。本页只用于群生命周期、
显式 EventKey 或高级底层控制。
## 16 个 EventKey
| EventKey | 范围 | 目标参数 |
|---|---|---|
| `user_im_message_receive_at` | 被 @ 消息 | 无 |
| `user_im_message_receive_o2o` | 指定单聊消息 | `--user``--open-dingtalk-id` |
| `user_im_message_receive_group` | 指定群消息 | `--group` |
| `user_im_message_receive_user` | 指定发送人在单聊/群聊中的消息 | `--user``--open-dingtalk-id` |
| `user_im_message_receive_o2o_all` | 全部单聊消息 | 无 |
| `user_im_message_receive_group_all` | 全部群消息 | 无 |
| `user_im_message_read_o2o` | 指定单聊已读 | user 二选一 |
| `user_im_message_read_group` | 指定群已读 | `--group` |
| `user_im_message_recall_o2o` | 指定单聊撤回 | user 二选一 |
| `user_im_message_recall_group` | 指定群撤回 | `--group` |
| `user_im_message_reaction_o2o` | 指定单聊 reaction | user 二选一 |
| `user_im_message_reaction_group` | 指定群 reaction | `--group` |
| `user_im_group_updated` | 群标题变化 | `--group` |
| `user_im_group_member_added` | 成员加入 | `--group` |
| `user_im_group_member_exited` | 成员退出 | `--group` |
| `user_im_group_disbanded` | 群解散 | `--group` |
`--user` 只接收 userId;明确 openDingTalkId 时用对应 flag。群目标必须是
openConversationId。不要把两种身份混传或选择搜索第一项。
## 精确模板
```bash
dws event consume user_im_group_member_added \
--group <openConversationId> --flatten -f ndjson
dws event consume user_im_message_receive_user \
--open-dingtalk-id <openDingTalkId> --flatten -f ndjson
dws event consume user_im_message_receive_group \
user_im_message_reaction_group \
user_im_message_recall_group \
--group <openConversationId> --flatten -f ndjson
```
多事件只能共享同一 target/filter。用户类与群类不能混在一个命令中;不同人、群或过滤条件
启动不同 consume。只有全部 EventKey 都是接收消息时才能共享 `--query/--filter-json`
多事件不支持 `--subscribe-id``--rule``--event-types``--filter``--foreground`
`--force``--debug-raw-events`
## 意图消歧
- “我和某人的单聊” → `receive_o2o`;“某人发给我的消息” → `receive_user`
- 执行撤回/添加 reaction 走 `dws chat`;监听它们才走 Event。
- 群改名/成员进退/解散使用四个生命周期 EventKey;解散自测只能用已确认可销毁测试群。