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.
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
SkillHub CLI
skillhub install deadblue22/feishu-msg-readerInspect the source and compatibility requirements, then follow its installation steps.
Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.
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
These signals come from indexed source analysis and may lag behind changes. Check the current source files.
# 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. 查看未读邮件 当用户提到 "发邮件"、"收邮件"、"查看邮件"、"邮箱"...
⚠️ 重要声明