- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
4.3 KiB
im +messages-mget
Prerequisite: Read
../lark-shared/SKILL.mdfirst 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
- Use JSON for full content: table output truncates content. Use
--format jsonwhen the full body matters. - Sender names are already enriched: the command resolves sender names automatically, so no extra lookup is required.
- Images are rendered as placeholders: image messages appear as placeholders such as
[Image: img_xxx]. Use+messages-resources-downloadwhen you need the binary resource. - Batching is more efficient: fetching multiple IDs in one request is better than calling the API repeatedly.
References
- lark-im - all IM commands
- lark-shared - authentication and global parameters