跳到內容

WhatsApp 圖片與多媒體支援指南

以前在開發聊天機器人時,最煩人的就是處理多媒體檔案。你要自己處理圖片縮放、擔心格式相容性,還要寫一堆程式碼來解析不同平台的文件限制。

我們希望發送媒體就像傳送純文字一樣簡單,不需要為了傳一張照片或一段語音搞到焦頭爛額。OpenClaw 透過 Baileys Web 簡化了這個流程,讓你直接用 CLI 或設定檔就能搞定多媒體互動。

  • 已啟用的 WhatsApp channel (透過 Baileys Web 運行)
  • OpenClaw CLI 工具
  • 準備好要傳送的本地檔案路徑或 HTTP(S) URL

要在 5 分鐘內開始傳送媒體,最快的方法是使用 openclaw message send 命令。你可以同時附帶文字訊息,也可以只傳送媒體檔案。

貼上你的檔案路徑,OpenClaw 會自動處理 MIME 類型偵測:

Terminal window
# 發送本地圖片並附帶文字
openclaw message send --media "./images/demo.jpg" --message "這是你的圖片"
# 發送網路上的影片並開啟 GIF 循環播放模式
openclaw message send --media "https://example.com/video.mp4" --gif-playback

如果你想在實際發送前確認資料格式,可以使用 --dry-run 或 --json:

Terminal window
openclaw message send --media "./test.png" --dry-run

OpenClaw 會根據檔案類型自動執行以下操作:

  • Images: 自動調整大小並壓縮為 JPEG(最大邊長 2048px),目標大小約 5MB,上限 6MB。
  • Audio: 自動轉換為語音訊息(Voice Note/PTT)格式發送,上限 16MB。
  • Video: 支援最高 16MB 的影片,使用 --gif-playback 可以讓行動裝置端自動循環播放。
  • Documents: 支援最高 100MB 的任意檔案,並會盡量保留原始檔名。

在 getReplyFromConfig 設定中,你可以回傳 mediaUrl 或 mediaUrls。當有多個媒體時,系統會按順序自動發送。

當有人傳送媒體給你的機器人時,OpenClaw 會將檔案下載到暫存目錄,並提供變數供你的 Command 或 Pi 使用:

  • {{MediaUrl}}: 媒體的虛擬 URL。
  • {{MediaPath}}: 檔案在本地的暫存路徑。

如果你啟用了 Docker Sandbox,這些路徑會自動轉換為容器內的相對路徑(例如 media/inbound/<filename>),確保你的腳本可以直接讀取檔案。

  • 媒體發送失敗: 檢查日誌。如果檔案超過限制(圖片 6MB / 影音 16MB / 文件 100MB),系統會拋出錯誤並跳過該次發送。
  • 媒體理解 (Media Understanding) 被跳過: 如果你配置了 AI 轉錄或描述功能,但檔案超過了 tools.media.*.maxBytes 的限制(例如音訊預設 20MB),系統會跳過 AI 處理,但原始訊息仍會正常傳遞。

如果你在配置過程中遇到任何問題,可以詢問 AI Setup Assistant 獲取即時幫助。

OpenClaw

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。