Skip to main content

openclaw message

單一傳出命令,用於跨 Discord、Google Chat、iMessage、Matrix、Mattermost(外掛)、Microsoft Teams、Signal、Slack、Telegram 與 WhatsApp 傳送訊息及執行頻道動作。

頻道選擇

  • 若設定了多個頻道,則必須指定 --channel <name>;若只設定一個頻道,則預設使用該頻道。
  • 值:discord|googlechat|imessage|matrix|mattermost|msteams|signal|slack|telegram|whatsapp (Mattermost 需要外掛)。
  • 帶有頻道前綴的目標(例如 discord:channel:123)無須明確指定 --channel,即可解析出所屬外掛。

目標格式(-t, --target

頻道名稱查詢:對於具有目錄的提供者(Discord/Slack 等),Help#help 等名稱會透過目錄快取解析;若快取未命中,且提供者支援即時目錄查詢,則改用即時查詢。

通用旗標

每個動作都接受:--channel <name>--account <id>--json--dry-run--verbose。需要目的地的動作也接受 -t, --target <dest>

SecretRef 解析

openclaw message 會在執行動作前解析頻道 SecretRef,並將範圍儘可能縮小:
  • 設定 --channel 時(或從帶前綴的目標推斷時),範圍限於頻道
  • 同時設定 --account 時,範圍限於帳號
  • 兩者皆未設定時,範圍涵蓋所有已設定的頻道
不相關頻道中無法解析的 SecretRef 絕不會阻擋指定目標的動作;所選頻道/帳號中無法解析的 SecretRef 會使動作以封閉方式失敗。

動作

核心

傳送

  • --media <path-or-url>:附加圖片/音訊/影片/文件(本機路徑或 URL)。
  • --presentation <json>:包含 textcontextdividercharttablebuttonsselect 區塊的共用承載資料,依各頻道功能呈現。請參閱訊息呈現
  • --delivery <json>:一般傳遞偏好設定,例如 {"pin": true}。頻道支援時,--pin 是釘選傳遞的簡寫。
  • --reply-to <id>--thread-id <id>(Telegram 論壇主題;Slack 討論串時間戳記,與 --reply-to 為同一欄位)。
  • --force-document(Telegram、WhatsApp):以文件形式傳送圖片/GIF/影片,以避免頻道壓縮。
  • --silent(Telegram、Discord):傳送時不發出通知。
  • --gif-playback(僅限 WhatsApp):將影片媒體視為 GIF 播放。
Slack 會以原生方式呈現支援的圖表區塊;其他頻道會以可讀文字接收相同的 資料:
Slack 也會以原生方式呈現明確的表格區塊。其他頻道會以固定格式的文字接收 說明文字及每一列:
Telegram Mini App 按鈕使用 webApp(舊版 JSON 中的 web_app 仍可剖析),且只會呈現在使用者與機器人之間的私人聊天中:

投票

  • --poll-option <choice>:重複 2-12 次。
  • --poll-multi:允許多選。
  • Discord:--poll-duration-hours--silent--message
  • Telegram:--poll-duration-seconds <n>(5-600)、--silent--poll-anonymous / --poll-public--thread-id

討論串

  • thread create:頻道 Discord。必填:--thread-name--target (頻道 ID)。選填:--message-id--message--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

角色、頻道、語音、活動(Discord)

  • role info--guild-id
  • role add / role remove--guild-id--user-id--role-id
  • channel info--target
  • channel list--guild-id
  • voice status--guild-id--user-id
  • event list--guild-id
  • event create:必填 --guild-id--event-name--start-time; 選填 --end-time--desc--channel-id--location--event-type--image <url-or-path>

管理(Discord)

  • timeout--guild-id--user-id;選填 --duration-min--until(兩者都省略即可清除逾時設定)、--reason
  • kick--guild-id--user-id--reason
  • ban--guild-id--user-id--delete-days--reason

廣播

將一個承載內容傳送至多個目標。--targets 接受以空格分隔的 清單。使用 --channel all 即可指定所有已設定的提供者。

相關內容