返回顶部
f

feishu-cli-chat飞书命令行聊天

>-

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
180
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

feishu-cli-chat

飞书会话浏览与管理

通过 feishu-cli 浏览飞书单聊/群聊消息历史、搜索会话、管理群聊信息和成员。

前置条件

本技能的核心命令必须使用 User Token,使用前需先登录。chat create、chat link、msg read-users 使用 App Token,属于 feishu-cli-toolkit 技能。

bash
feishu-cli auth login

未登录时命令会直接报错并提示登录方式。登录后 token 自动加载,无需手动传参。

身份说明

身份使用场景
User Token(必须)本技能所有读取/管理命令:chat get/update/delete、member list/add/remove、msg get/history/list/pins/reaction/search-chats、search messages
App Token
仅 chat create、chat link、msg read-users(这三个命令不属于本技能核心流程) |

User Token 能力:

  • - 查看 bot 不在的群聊消息
  • 查看私聊(p2p)消息
  • 搜索用户有权限的所有会话

自动降级机制

当使用 User Token 调用 msg history / msg list 时,如果 bot 不在目标群中,API 会返回空结果。CLI 会自动检测这种情况并降级为 search + get 方式获取消息:

list API 返回空 + has_more=true → 自动切换到搜索模式 → 逐条获取消息内容

这个过程对用户透明,无需手动干预。



场景一:查看群聊历史消息

这是最常见的场景——用户想看某个群最近在聊什么。

步骤 1:找到群聊

如果用户给了群名而不是 chat_id,先搜索:

bash
feishu-cli msg search-chats --query 群名关键词 -o json

输出中的 chatid(形如 ocxxx)就是后续命令需要的标识。

步骤 2:获取消息

bash

获取最近 50 条消息(API 单次上限 50)


feishu-cli msg history \
--container-id oc_xxx \
--container-id-type chat \
--page-size 50 \
--sort-type ByCreateTimeDesc \
-o json

按时间范围获取(--start-time 为毫秒级时间戳,仅返回该时间之后的消息)

feishu-cli msg history \ --container-id oc_xxx \ --container-id-type chat \ --page-size 50 \ --start-time 1773778860000 \ --sort-type ByCreateTimeDesc \ -o json

获取更早的消息(使用上一次返回的 page_token 翻页)

feishu-cli msg history \ --container-id oc_xxx \ --container-id-type chat \ --page-size 50 \ --page-token 上一页返回的token \ -o json

步骤 2.5:判断群类型并获取线程回复

飞书群聊分为普通群话题群两种,消息结构和获取策略完全不同。

如何判断群类型

观察 msg history 返回的消息字段:

群类型特征示例
话题群每条消息都有 threadid(形如 omtxxx),主消息流仅包含每个话题的首条消息泰国华商群
普通群
独立消息 threadid,仅被回复的消息和回复消息才有 threadid | Claude Code闲聊群 |

消息中的线程相关字段

字段说明出现条件
threadid线程/话题 ID(形如 omtxxx)话题群所有消息 / 普通群中参与线程的消息
root_id
线程根消息 ID(即话题首条消息) | 线程回复消息 | | parent_id | 直接上级消息 ID(被回复的那条消息) | 线程回复消息 |

普通群:一次获取全部消息

普通群的 msg history 返回所有消息(独立消息 + 线程回复),平铺在同一列表中。通过 rootid/parentid 可重建回复关系,不需要额外获取线程。

独立消息: 无 threadid、无 rootid
被回复的消息: 有 thread_id(被回复后自动产生)
线程回复: 有 threadid + rootid + parent_id

话题群:需要逐个话题获取回复(重要)

话题群的 msg history --container-id-type chat 仅返回每个话题的首条消息,线程回复不在主消息流中。必须按 thread_id 逐个获取:

bash

获取单个话题的所有回复(按时间正序,方便阅读)


feishu-cli msg history \
--container-id omt_xxx \
--container-id-type thread \
--page-size 50 \
--sort-type ByCreateTimeAsc \
-o json

完整的话题群获取流程

bash

1. 获取主消息流(每个话题的首条消息)


feishu-cli msg history \
--container-id oc_xxx \
--container-id-type chat \
--page-size 50 \
--sort-type ByCreateTimeDesc \
-o json

2. 从返回结果中提取所有 thread_id

3. 对每个 thread_id 获取回复(可并发执行,提高效率)

feishu-cli msg history --container-id omt_xxx --container-id-type thread --page-size 50 --sort-type ByCreateTimeAsc -o json feishu-cli msg history --container-id omt_yyy --container-id-type thread --page-size 50 --sort-type ByCreateTimeAsc -o json

... 多个话题可并行获取

性能提示:话题群中活跃话题可能有 10-20 个,建议并发获取多个话题的回复。飞书 API 对 msg history 无严格 QPS 限制(不同于搜索 API),可以安全并发。

步骤 3:解析消息内容

API 返回的消息 body.content 是 JSON 字符串,常见格式:

msgtypecontent 格式说明
text{text:消息内容}纯文本,@user_1 是 at 占位符
post
富文本 JSON | 包含标题和段落结构 |
| image | {image_key:xxx} | 图片 |
| interactive | 卡片 JSON | 交互式卡片 |
| sharecalendarevent | {summary:会议名,starttime:ms,endtime:ms,...} | 日历事件分享 |
| sticker | {sticker_key:xxx} | 表情包 |
| file | {filekey:xxx,filename:...} | 文件 |

用 Python 提取文本内容的常用方式:

python
import json
content = json.loads(msg[body][content])
text = content.get(text, )

完整示例:获取并总结群聊最近 N 条消息

bash

1. 搜索群聊


feishu-cli msg search-chats --query Go讨论区 -o json

2. 获取消息(循环翻页直到够数)

feishu-cli msg history \ --container-id oc_xxx \ --container-id-type chat \ --page-size 50 \ --sort-type ByCreateTimeDesc \ -o json > /tmp/chat_page1.json

3. 提取 page_token 获取下一页

... 循环直到获取足够消息

注意:Search API 的 pagesize 与 List API 不同,降级模式下每页实际返回数量可能少于请求值。建议循环翻页直到 hasmore=false 或达到目标数量。


场景二:查看和某人的私聊记录

飞书 Open API 不支持直接按用户查询 p2p 聊天记录。需要通过搜索 API 间接实现。

方法:搜索 + 筛选

bash

搜索私聊消息


feishu-cli search messages 关键词 \
--chat-type p2p_chat \
-o json

如果知道对方的 open_id,可以按发送者筛选

feishu-cli search messages 关键词 \ --chat-type p2p_chat \ --from-ids ou_xxx \ -o json

获取单条消息详情

feishu-cli msg get om_xxx -o json

查找用户 ID

如果用户只给了邮箱或手机号,可以查找对应的 open_id:

bash

通过邮箱查找用户


feishu-cli user search --email user@example.com -o json

通过手机号查找用户

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 feishu-cli-chat-1776117062 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 feishu-cli-chat-1776117062 技能

通过命令行安装

skillhub install feishu-cli-chat-1776117062

下载

⬇ 下载 feishu-cli-chat v1.0.0(免费)

文件大小: 6.62 KB | 发布时间: 2026-4-17 14:48

v1.0.0 最新 2026-4-17 14:48
feishu-cli-chat 1.0.0

- 首个版本发布,支持飞书会话浏览、消息互动及群聊管理。
- 可查看聊天记录、获取群聊历史消息、搜索群聊、获取消息详情。
- 支持表情 Reaction、消息置顶/取消置顶、删除消息等群聊消息操作。
- 支持获取与管理群聊信息,包括群成员管理与解散群聊。
- 区分普通群和话题群,话题群可自动获取所有线程回复。
- 所有主流程均需 User Token,未登录自动提示,支持透明降级搜索模式。

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部