- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
100 lines
4.3 KiB
Markdown
100 lines
4.3 KiB
Markdown
# im +messages-mget
|
|
|
|
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../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](lark-im-message-enrichment.md) 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
lark-cli im +messages-mget --message-ids om_xxx --format json
|
|
```
|
|
|
|
### Scenario 2: Fetch multiple messages in one batch
|
|
|
|
```bash
|
|
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`:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
- [lark-im](../SKILL.md) - all IM commands
|
|
- [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
|