stock-data-skill
OpenClaw Skill for stock data analysis
Fetch Feishu message content by message_id, with optional thread context. Activate when: needing to read the content of a specific Feishu message by its message_id, needing thread context around a message, or encountering "[Interactive Card]" placeholder text. Handles all msg_types: text, post, interactive (fallback only), image, merge_forward.
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
SkillHub CLI
skillhub install deadblue22/feishu-msg-reader打开来源仓库,查看说明和兼容环境后,按来源提供的命令或步骤安装。
将来源链接提供给你的 Agent,让它先读取说明、核对依赖,并向你说明将执行的安装步骤。
Fetch any Feishu message content by message_id using the IM API, with optional thread context.
Interactive cards (msg_type: interactive): The Feishu GET message API (/im/v1/messages/{id}) only returns fallback/degraded text in body.content, not the full card JSON. This is a Feishu platform limitation — there is no API to retrieve the rendered card structure after sending.
Workaround: Use --thread to fetch the entire thread context. 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.
# Fetch a single message
python3 scripts/fetch_message.py <message_id>
# Fetch with thread context (root message + all replies in thread)
python3 scripts/fetch_message.py <message_id> --thread
# Raw API response
python3 scripts/fetch_message.py <message_id> --raw
Automatic — reads appId/appSecret from ~/.openclaw/openclaw.json. Alternatively set FEISHU_APP_ID + FEISHU_APP_SECRET env vars, or pass --token <tenant_access_token>.
JSON with: message_id, msg_type, sender_id, sender_type, chat_id, create_time, root_id, parent_id, content (parsed).
With --thread: adds thread array (all messages in the same thread, sorted chronologically) and thread_count.
When you encounter [Interactive Card] in a replied-to message:
has_reply_context, parent message info)fetch_message.py <parent_message_id> --thread
这些信息来自收录时的来源分析,可能滞后;使用前请核对最新来源文件。
# Feishu Message Fetcher
Fetch any Feishu message content by `message_id` using the IM API, with optional thread context.
## Known Limitation
**Interactive cards** (`msg_type: interactive`): The Feishu GET message API (`/im/v1/messages/{id}`) only returns **fallback/degraded text** in `body.content`, not the full card JSON. This is a Feishu platform limitation — there is no API to retrieve the rendered card structure after sending.
**Workaround**: Use `--thread` to fetch the entire thread context. 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
```bash
# Fetch a single message
python3 scripts/fetch_message.py <message_id>
# Fetch with thread context (root message + all replies in thread)
python3 scripts/fetch_message.py <message_id> --thread
# Raw API response
python3 scripts/fetch_message.py <message_id> --raw
```
## Auth
Automatic — reads `appId`/`appSecret` from `~/.openclaw/openclaw.json`. Alternatively set `FEISHU_APP_ID` + `FEISHU_APP_SECRET` env vars, or pass `--token <tenant_access_token>`.
## Output
JSON with: `message_id`, `msg_type`, `sender_id`, `sender_type`, `chat_id`, `create_time`, `root_id`, `parent_id`, `content` (parsed).
With `--thread`: adds `thread` array (all messages in the same thread, sorted chronologically) and `thread_count`.
## Typical Workflow
When you encounter `[Interactive Card]` in a replied-to message:
1. Get the message_id from inbound metadata (`has_reply_context`, parent message info)
2. Run `fetch_message.py <parent_message_id> --thread`
3. The thread context will contain the text/post messages with actual content
4. Use that content to fulfill the user's requestOpenClaw Skill for stock data analysis
Generative Engine Optimization (GEO) for AI search visibility. Optimize content to appear in ChatGPT, Perplexity, Claude, and Google AI Overviews. Use when optimizing websites, pages, or content for LLM discove...
139邮箱邮件收发 Skill - 支持 IMAP/SMTP 协议,兼容139/QQ/163/Gmail等主流邮箱 功能: 1. 发送邮件(SMTP) 2. 接收邮件(IMAP) 3. 查看收件箱列表 4. 查看未读邮件 当用户提到 "发邮件"、"收邮件"、"查看邮件"、"邮箱"...
⚠️ 重要声明