Files
openclaw/docs/zh-CN/cli/message.md
2026-02-02 16:38:25 +01:00

247 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
read_when:
- 添加或修改消息 CLI 操作
- 更改出站渠道行为
summary: "`openclaw message`(发送 + 渠道操作)的 CLI 参考"
title: message
x-i18n:
generated_at: "2026-02-01T20:21:30Z"
model: claude-opus-4-5
provider: pi
source_hash: 35159baf1ef7136252e3ab1e5e03881ebc4196dd43425e2319a39306ced7f48c
source_path: cli/message.md
workflow: 14
---
# `openclaw message`
用于发送消息和渠道操作的单一出站命令
Discord/Google Chat/Slack/Mattermost插件/Telegram/WhatsApp/Signal/iMessage/MS Teams
## 用法
```
openclaw message <subcommand> [flags]
```
渠道选择:
- 如果配置了多个渠道,则必须指定 `--channel`
- 如果只配置了一个渠道,则该渠道为默认值。
- 可选值:`whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams`Mattermost 需要插件)
目标格式(`--target`
- WhatsAppE.164 或群组 JID
- Telegram聊天 ID 或 `@username`
- Discord`channel:<id>``user:<id>`(或 `<@id>` 提及;纯数字 ID 被视为频道)
- Google Chat`spaces/<spaceId>``users/<userId>`
- Slack`channel:<id>``user:<id>`(接受纯频道 ID
- Mattermost插件`channel:<id>``user:<id>``@username`(纯 ID 被视为频道)
- Signal`+E.164``group:<id>``signal:+E.164``signal:group:<id>``username:<name>`/`u:<name>`
- iMessage句柄、`chat_id:<id>``chat_guid:<guid>``chat_identifier:<id>`
- MS Teams会话 ID`19:...@thread.tacv2`)或 `conversation:<id>``user:<aad-object-id>`
名称查找:
- 对于支持的提供商Discord/Slack 等),如 `Help``#help` 之类的频道名称会通过目录缓存进行解析。
- 缓存未命中时如果提供商支持OpenClaw 将尝试实时目录查找。
## 通用标志
- `--channel <name>`
- `--account <id>`
- `--target <dest>`(用于 send/poll/read 等的目标渠道或用户)
- `--targets <name>`(可重复;仅限广播)
- `--json`
- `--dry-run`
- `--verbose`
## 操作
### 核心
- `send`
- 渠道WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost插件/Signal/iMessage/MS Teams
- 必需:`--target`,以及 `--message``--media`
- 可选:`--media``--reply-to``--thread-id``--gif-playback`
- 仅限 Telegram`--buttons`(需要 `channels.telegram.capabilities.inlineButtons` 以启用)
- 仅限 Telegram`--thread-id`(论坛主题 ID
- 仅限 Slack`--thread-id`(线程时间戳;`--reply-to` 使用相同字段)
- 仅限 WhatsApp`--gif-playback`
- `poll`
- 渠道WhatsApp/Discord/MS Teams
- 必需:`--target``--poll-question``--poll-option`(可重复)
- 可选:`--poll-multi`
- 仅限 Discord`--poll-duration-hours``--message`
- `react`
- 渠道Discord/Google Chat/Slack/Telegram/WhatsApp/Signal
- 必需:`--message-id``--target`
- 可选:`--emoji``--remove``--participant``--from-me``--target-author``--target-author-uuid`
- 注意:`--remove` 需要 `--emoji`(省略 `--emoji` 可清除自己的表情回应(如果支持);参见 /tools/reactions
- 仅限 WhatsApp`--participant``--from-me`
- Signal 群组表情回应:需要 `--target-author``--target-author-uuid`
- `reactions`
- 渠道Discord/Google Chat/Slack
- 必需:`--message-id``--target`
- 可选:`--limit`
- `read`
- 渠道Discord/Slack
- 必需:`--target`
- 可选:`--limit``--before``--after`
- 仅限 Discord`--around`
- `edit`
- 渠道Discord/Slack
- 必需:`--message-id``--message``--target`
- `delete`
- 渠道Discord/Slack/Telegram
- 必需:`--message-id``--target`
- `pin` / `unpin`
- 渠道Discord/Slack
- 必需:`--message-id``--target`
- `pins`(列表)
- 渠道Discord/Slack
- 必需:`--target`
- `permissions`
- 渠道Discord
- 必需:`--target`
- `search`
- 渠道Discord
- 必需:`--guild-id``--query`
- 可选:`--channel-id``--channel-ids`(可重复)、`--author-id``--author-ids`(可重复)、`--limit`
### 线程
- `thread create`
- 渠道Discord
- 必需:`--thread-name``--target`(频道 ID
- 可选:`--message-id``--auto-archive-min`
- `thread list`
- 渠道Discord
- 必需:`--guild-id`
- 可选:`--channel-id``--include-archived``--before``--limit`
- `thread reply`
- 渠道Discord
- 必需:`--target`(线程 ID`--message`
- 可选:`--media``--reply-to`
### 表情符号
- `emoji list`
- Discord`--guild-id`
- Slack无需额外标志
- `emoji upload`
- 渠道Discord
- 必需:`--guild-id``--emoji-name``--media`
- 可选:`--role-ids`(可重复)
### 贴纸
- `sticker send`
- 渠道Discord
- 必需:`--target``--sticker-id`(可重复)
- 可选:`--message`
- `sticker upload`
- 渠道Discord
- 必需:`--guild-id``--sticker-name``--sticker-desc``--sticker-tags``--media`
### 角色 / 频道 / 成员 / 语音
- `role info`Discord`--guild-id`
- `role add` / `role remove`Discord`--guild-id``--user-id``--role-id`
- `channel info`Discord`--target`
- `channel list`Discord`--guild-id`
- `member info`Discord/Slack`--user-id`Discord 还需要 `--guild-id`
- `voice status`Discord`--guild-id``--user-id`
### 事件
- `event list`Discord`--guild-id`
- `event create`Discord`--guild-id``--event-name``--start-time`
- 可选:`--end-time``--desc``--channel-id``--location``--event-type`
### 管理Discord
- `timeout``--guild-id``--user-id`(可选 `--duration-min``--until`;两者都省略则清除超时)
- `kick``--guild-id``--user-id`+ `--reason`
- `ban``--guild-id``--user-id`+ `--delete-days``--reason`
- `timeout` 也支持 `--reason`
### 广播
- `broadcast`
- 渠道:任何已配置的渠道;使用 `--channel all` 可针对所有提供商
- 必需:`--targets`(可重复)
- 可选:`--message``--media``--dry-run`
## 示例
发送 Discord 回复:
```
openclaw message send --channel discord \
--target channel:123 --message "hi" --reply-to 456
```
创建 Discord 投票:
```
openclaw message poll --channel discord \
--target channel:123 \
--poll-question "Snack?" \
--poll-option Pizza --poll-option Sushi \
--poll-multi --poll-duration-hours 48
```
发送 Teams 主动消息:
```
openclaw message send --channel msteams \
--target conversation:19:abc@thread.tacv2 --message "hi"
```
创建 Teams 投票:
```
openclaw message poll --channel msteams \
--target conversation:19:abc@thread.tacv2 \
--poll-question "Lunch?" \
--poll-option Pizza --poll-option Sushi
```
在 Slack 中添加表情回应:
```
openclaw message react --channel slack \
--target C123 --message-id 456 --emoji "✅"
```
在 Signal 群组中添加表情回应:
```
openclaw message react --channel signal \
--target signal:group:abc123 --message-id 1737630212345 \
--emoji "✅" --target-author-uuid 123e4567-e89b-12d3-a456-426614174000
```
发送 Telegram 内联按钮:
```
openclaw message send --channel telegram --target @mychat --message "Choose:" \
--buttons '[ [{"text":"Yes","callback_data":"cmd:yes"}], [{"text":"No","callback_data":"cmd:no"}] ]'
```