PicoBot/.agents/skills/lark-im/references/lark-im-messages-mget.md
ooodc a7883dbed9 refactor(todo): 重构待办事项管理逻辑及更新状态规则
- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段
- 强制每个任务都必须有唯一 id,且由用户负责生成
- 修改合并模式逻辑,merge=true 下保留未提及的旧任务
- 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress)
- 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled
- 优化状态转换校验,允许特定状态间合法切换
- 简化任务变更消息,移除详细的新增/更新/移除统计
- 更新文档和示例,明确 id 必须由用户生成和使用
- 修复和补充测试,增强状态转换和合并模式验证
- 调整任务时间戳生成逻辑,统一使用当前时间及索引
- 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
2026-06-13 09:22:33 +08:00

4.3 KiB

im +messages-mget

Prerequisite: Read ../lark-shared/SKILL.md first to understand authentication, global parameters, and safety rules.

Fetch message details in batch. Given a list of message IDs, this returns the full content for multiple messages in one call and automatically resolves sender names.

By default the response also carries a reactions block (counts + details from im.reactions.batch_query) on every message that has reactions, and update_time on messages that were actually edited. Replies inside thread_replies participate in the same batched enrichment. Pass --no-reactions to skip the extra round-trip. Pass --download-resources to additionally download message resources (image/file/audio/video/media + post-embedded, excluding stickers) into ./lark-im-resources/ and attach a resources block — off by default, no extra requests when omitted. See message enrichment for the full contract.

Supports both --as user (default) and --as bot.

This skill maps to the shortcut: lark-cli im +messages-mget (internally calls GET /open-apis/im/v1/messages/mget).

Commands

# Fetch a single message
lark-cli im +messages-mget --message-ids om_xxx

# Fetch multiple messages in batch (comma-separated)
lark-cli im +messages-mget --message-ids "om_aaa,om_bbb,om_ccc"

# JSON output
lark-cli im +messages-mget --message-ids "om_aaa,om_bbb" --format json

# Preview the request without executing it
lark-cli im +messages-mget --message-ids "om_aaa" --dry-run

Parameters

Parameter Required Limits Description
--message-ids <ids> Yes At least one, max 50, om_xxx format, comma-separated Message ID list
--no-reactions No Skip auto-fetching the reactions block
--download-resources No Download message resources (image/file/audio/video/media + post-embedded, excluding stickers) into ./lark-im-resources/ and attach a resources block. Off by default

Output Fields

Field Description
messages Message array
total Number of messages returned

Each message contains:

Field Description
message_id Message ID
msg_type Message type (text, image, file, etc.)
create_time Creation time
sender Sender information (includes name)
content Message content

Usage Scenarios

Scenario 1: Fetch the full content of a specific message

lark-cli im +messages-mget --message-ids om_xxx --format json

Scenario 2: Fetch multiple messages in one batch

lark-cli im +messages-mget --message-ids "om_aaa,om_bbb,om_ccc"

Scenario 3: Use together with the message list command

First get message IDs via +chat-messages-list, then fetch full content via +messages-mget:

# Get the message list
lark-cli im +chat-messages-list --chat-id oc_xxx --format json

# Fetch specific message details
lark-cli im +messages-mget --message-ids "om_aaa,om_bbb"

Common Errors and Troubleshooting

Symptom Root Cause Solution
--message-ids requires at least one message ID No message ID was provided Provide at least one message ID
invalid message ID: must start with om_ Invalid message ID format Message IDs must start with om_
Permission denied Message read permission is missing Ensure the app has im:message:readonly and contact:user.base:readonly enabled
Empty result Message IDs do not exist or are not accessible Verify the IDs and access permissions

AI Usage Guidance

  1. Use JSON for full content: table output truncates content. Use --format json when the full body matters.
  2. Sender names are already enriched: the command resolves sender names automatically, so no extra lookup is required.
  3. Images are rendered as placeholders: image messages appear as placeholders such as [Image: img_xxx]. Use +messages-resources-download when you need the binary resource.
  4. Batching is more efficient: fetching multiple IDs in one request is better than calling the API repeatedly.

References