Feishu Message Reader
v1Fetch Feishu message content by message_id, with optional thread 上下文. Activate when: needing to read the content of a specific Feishu message by its message_id, needing thread 上下文 around a message, or encountering "[Interactive Card]" placeholder text. Handles all msg_types: text, post, interactive (fallback only), image, merge_forward.
运行时依赖
安装命令
点击复制技能文档
Feishu Message Fetcher
Fetch any Feishu message content by message_id using the IM API, with optional thread 上下文.
Known Limitation
Interactive cards (msg_type: interactive): The Feishu 获取 message API (/im/v1/messages/{id}) only returns fallback/degraded text in body.content, not the full card JSON. This is a Feishu 平台 limitation — there is no API to retrieve the rendered card structure after 发送ing.
Workaround: Use --thread to fetch the entire thread 上下文. The interactive card is usually a reply to a text/post message that contAIns the actual content. Reading the thread gives you the full picture.
Usage # Fetch a single message python3 scripts/fetch_message.py
# Fetch with thread 上下文 (root message + all replies in thread) python3 scripts/fetch_message.py --thread
# Raw API 响应 python3 scripts/fetch_message.py --raw
Auth
Automatic — reads 应用Id/应用Secret from ~/.OpenClaw/OpenClaw.json. Alternatively 设置 FEISHU_应用_ID + FEISHU_应用_SECRET env vars, or pass --令牌 .
输出
JSON with: message_id, msg_type, 发送er_id, 发送er_type, chat_id, 创建_time, root_id, parent_id, content (解析d).
With --thread: 添加s thread array (all messages in the same thread, 排序ed chrono记录ically) and thread_count.
Typical 工作流
When you encounter [Interactive Card] in a replied-to message:
获取 the message_id from inbound metadata (has_reply_上下文, parent message 信息) 运行 fetch_message.py --thread The thread 上下文 will contAIn the text/post messages with actual content Use that content to fulfill the user's 请求