Search

PythonReactSEOPDF
OpenClaw

feishu-merged-msg

Fetch and parse Feishu merged/forwarded messages (合并转发消息). Activate when a Feishu message shows "Merged and Forwarded Message" with no readable content, or when you need to retrieve sub-messages from a merge_forward message type.

deadblue220 source installs☆ 0 Repository stars

Installation

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-merged-msg

Inspect 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.

View source ↗Guides

Skill instructions

Feishu Merged Message Fetcher

Feishu's merge_forward messages appear as "Merged and Forwarded Message" with no content in the bot API. Use the Feishu REST API to retrieve the actual sub-messages.

When to Use

  • Message body contains only "Merged and Forwarded Message"
  • msg_type is merge_forward
  • User asks about a forwarded/合并转发 message you can't read

How It Works

The Feishu GET /open-apis/im/v1/messages/{message_id} endpoint returns the parent message plus all sub-messages in data.items[]. Sub-messages have upper_message_id pointing to the parent.

Steps

  1. Get the message_id of the merged message (from inbound context or replied message metadata).

  2. Run the fetch script:

    bash <skill_dir>/scripts/fetch_merged_msg.sh <message_id> <app_id> <app_secret>
    
    • app_id / app_secret: from OpenClaw config at .channels.feishu in openclaw.json
    • If credentials are not readily available, extract them:
      python3 -c "import json; d=json.load(open('/root/.openclaw/openclaw.json')); c=d['channels']['feishu']; print(c.get('appId',''), c.get('appSecret',''))"
      
  3. Parse the JSON response:

    • data.items[0] is the parent (merge_forward) message
    • data.items[1:] are the sub-messages in chronological order
    • Each sub-message has body.content with the actual text/post content
    • mentions[] maps @_user_N placeholders to real names
    • sender.id identifies who sent each sub-message
  4. Summarize the conversation thread for the user.

Notes

  • The API requires im:message:readonly scope on the Feishu app.
  • Images inside sub-messages show as image_key references; they cannot be directly displayed but can be described from context.
  • Sub-messages may come from different chats (check chat_id); the original chat context may differ from the current group.

Source information

Source
github
Repository
openclaw/skills
Path
skills/deadblue22/feishu-merged-msg
Version
—
Commit
94a52d0f6e5229fe08a7febfadd4e3498db1807b
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

Extracted content

SKILL.md
# Feishu Merged Message Fetcher

Feishu's merge_forward messages appear as "Merged and Forwarded Message" with no content in the bot API. Use the Feishu REST API to retrieve the actual sub-messages.

## When to Use

- Message body contains only `"Merged and Forwarded Message"`
- `msg_type` is `merge_forward`
- User asks about a forwarded/合并转发 message you can't read

## How It Works

The Feishu `GET /open-apis/im/v1/messages/{message_id}` endpoint returns the parent message plus all sub-messages in `data.items[]`. Sub-messages have `upper_message_id` pointing to the parent.

## Steps

1. Get the `message_id` of the merged message (from inbound context or replied message metadata).

2. Run the fetch script:
   ```bash
   bash <skill_dir>/scripts/fetch_merged_msg.sh <message_id> <app_id> <app_secret>
   ```
   - `app_id` / `app_secret`: from OpenClaw config at `.channels.feishu` in `openclaw.json`
   - If credentials are not readily available, extract them:
     ```bash
     python3 -c "import json; d=json.load(open('/root/.openclaw/openclaw.json')); c=d['channels']['feishu']; print(c.get('appId',''), c.get('appSecret',''))"
     ```

3. Parse the JSON response:
   - `data.items[0]` is the parent (merge_forward) message
   - `data.items[1:]` are the sub-messages in chronological order
   - Each sub-message has `body.content` with the actual text/post content
   - `mentions[]` maps `@_user_N` placeholders to real names
   - `sender.id` identifies who sent each sub-message

4. Summarize the conversation thread for the user.

## Notes

- The API requires `im:message:readonly` scope on the Feishu app.
- Images inside sub-messages show as `image_key` references; they cannot be directly displayed but can be described from context.
- Sub-messages may come from different chats (check `chat_id`); the original chat context may differ from the current group.

Related skills

OpenClaw

humanpages

human-pages-ai

Search and hire real humans for tasks — photography, delivery, research, and more

OpenClaw

geo-optimization

capt-marbles

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...

OpenClaw

openclaw-skills

zseven-w

Reusable skill templates for OpenClaw AI agents. Templates for API integration, data processing, web scraping, CLI tools, and file processing.