Install
openclaw skills install feishu-group-helperManage Feishu group info, record join/leave events, and send messages to groups with name lookup and active group confirmation.
openclaw skills install feishu-group-helper飞书群管理 skill。用于维护群信息、处理群事件、发送群消息。
群信息文件:各 agent 的 workspace 下 ~/openclaw/workspace/feishu-groups.json
注意: 每个 agent 的群信息独立维护,存储在该 agent 的 workspace 目录下。
记录格式:
{
"groups": {
"oc_xxx": {
"chat_id": "oc_xxx",
"name": "群名称",
"member_count": 5,
"added_at": "2026-01-01T00:00:00Z",
"removed_at": null,
"status": "active"
}
}
}
当 bot 被加入群或被要求记住群时:
feishu_chat 获取群信息addGroup(chatId, name, memberCount) 添加到当前 agent 的群信息文件当 bot 被移出群或被要求注销群时:
removeGroup(chatId) 标记为已移除用户指定群名:
findGroupByName(name) 查找群isInGroup(chatId) 确认在群里message 发送消息到 chat:xxx用户未指定群:
getActiveGroups() 获取活跃群列表查看所有群:
listAllGroups() 获取所有群信息(含状态)getActiveGroups() 获取仅活跃群查看 bot 在哪些群:
需要在飞书开放平台添加以下权限:
im:chat.memberbot.created - 机器人被添加到群im:chat.memberbot.deleted - 机器人被移出群im:chat.members:bot_access - 已有的| 事件 | 说明 | 处理 |
|---|---|---|
im.chat.member_bot.created | bot 被添加到群 | 自动调用 addGroup() |
im.chat.member_bot.deleted | bot 被移出群 | 自动调用 removeGroup() |
| 权限名称 | 说明 | 用途 |
|---|---|---|
im:chat | 群聊管理 | 获取群信息 |
im:chat.members:bot_access | 群成员列表 | 查看群成员 |
im:message:send_as_bot | 发消息 | 发送群消息 |
im:message.group_msg | 接收群消息 | 接收群消息 |
| 权限名称 | 说明 | 如何获取 |
|---|---|---|
im:chat.memberbot.created | 监听入群事件 | 在飞书开放平台申请 |
im:chat.memberbot.deleted | 监听退群事件 | 在飞书开放平台申请 |
在 OpenClaw 中检查权限:
feishu_app_scopes()
如需开启事件监听功能,请按以下步骤操作:
im:chat.memberbot.createdim:chat.memberbot.deleted配置回调 URL 后,飞书会 POST 事件到你的服务器:
// 机器人被添加入群事件
{
"schema": "2.0",
"header": {
"event_type": "im.chat.member_bot.created"
},
"event": {
"chat_id": "oc_xxx",
"operator_id": "ou_xxx"
}
}
// 机器人被移出群事件
{
"schema": "2.0",
"header": {
"event_type": "im.chat.member_bot.deleted"
},
"event": {
"chat_id": "oc_xxx",
"operator_id": "ou_xxx"
}
}
收到事件后调用:
addGroup(chatId, name, memberCount)removeGroup(chatId)// 添加群
const { addGroup } = require('./scripts/groupManager.js');
addGroup('oc_xxx', '群名', 5);
// 移除群
const { removeGroup } = require('./scripts/groupManager.js');
removeGroup('oc_xxx');
// 查找群
const { findGroupByName } = require('./scripts/groupManager.js');
findGroupByName('GoGoGo');
// 获取活跃群
const { getActiveGroups } = require('./scripts/groupManager.js');
getActiveGroups();
// 检查是否在群
const { isInGroup } = require('./scripts/groupManager.js');
isInGroup('oc_xxx');
// 查看所有群(含状态)
const { listAllGroups } = require('./scripts/groupManager.js');
listAllGroups();