OpenClaw Node App 簡訊(SMS)指令完全攻略|發送、搜尋、自動化通知

OpenClaw Node App 簡訊(SMS)指令完全攻略

這篇文章會介紹 OpenClaw Node App 的「簡訊」功能,讓你能夠發送和搜尋手機上的簡訊。

>

實驗日期:2026-04-19
實驗設備:Vivo V2514(Android 16)
OpenClaw 版本:2026.4.19.10ver(ThirdParty)

一、什麼是 SMS 功能?

想像一下

當你安裝 OpenClaw Node App 並連線到你的手機後,你可以:

  • 📤 發送簡訊:直接透過指令發送 SMS 簡訊
  • 🔍 搜尋簡訊:搜尋手機上的簡訊記錄
  • 📊 過濾條件:用時間、關鍵字、聯絡人等條件搜尋

實用場景

  • 📱 自動化發送:當特定條件滿足時,自動發送簡訊通知
  • 🔔 重要提醒:透過簡訊發送提醒給家人或同事
  • 📋 簡訊備份:搜尋並匯出重要簡訊記錄
  • 🔍 稽核查詢:查詢某段時間的所有簡訊往來

二、SMS 指令家族

根據官方文件和原始碼分析,SMS 有 2 個指令

指令功能
sms.send發送簡訊
sms.search搜尋簡訊

三、指令詳細說明

1. sms.send - 發送簡訊

用途: 發送 SMS 簡訊到手機號碼

指令格式:

openclaw nodes invoke --node "V2514" --command sms.send --params '{
  "to": "0912345678",
  "message": "你好,這是測試訊息"
}'

參數說明:

參數類型必填說明
tostring收件人電話號碼
messagestring簡訊內容

2. sms.search - 搜尋簡訊

用途: 在手機中搜尋簡訊記錄

指令格式:

openclaw nodes invoke --node "V2514" --command sms.search --params '{
  "keyword": "關鍵字",
  "phoneNumber": "0912345678",
  "limit": 25
}'

參數說明:

參數類型必填說明
startTimelong開始時間(毫秒時間戳)
endTimelong結束時間(毫秒時間戳)
contactNamestring聯絡人名稱
phoneNumberstring電話號碼
keywordstring關鍵字(搜尋內容)
typeint簡訊類型
isReadboolean是否已讀
includeMmsboolean包含 MMS(多媒體訊息)
conversationReviewboolean對話回顧模式
limitint回傳數量(預設 25,最大 200)
offsetint分頁偏移

四、簡訊類型(type)

說明範例
1收件匣(Inbox)收到的簡訊
2已傳送(Sent)已經發送的簡訊
3草稿(Draft)儲存為草稿的簡訊
4寄件匣(Outbox)正在傳送的簡訊
5失敗(Failed)傳送失敗的簡訊
6排程(Queued)等待傳送的簡訊

五、回傳資料格式

sms.search 回傳

{
  "ok": true,
  "count": 2,
  "messages": [
    {
      "id": 165,
      "threadId": 72,
      "address": "XXX-XXX-XXX",
      "person": null,
      "date": XXXXXXXXXXXX,
      "dateSent": XXXXXXXXXXXX,
      "read": false,
      "type": 1,
      "body": "[物流通知] 您的包裹已送達...",
      "status": -1
    }
  ]
}

欄位說明:

欄位類型說明
idlong簡訊唯一 ID
threadIdlong對話執行緒 ID
addressstring發件人/收件人電話
personstring聯絡人名稱(如有)
datelong時間戳(毫秒)
dateSentlong發送時間戳
readboolean是否已讀
typeint簡訊類型
bodystring簡訊內容
statusint狀態

六、實際測試結果

測試 1:基本搜尋

openclaw nodes invoke --node "V2514" --command sms.search --params '{}'

結果: ✅ 成功!回傳了 25 筆簡訊

{
  "ok": true,
  "count": 25,
  "messages": [
    {
      "id": 165,
      "address": "XXX-XXX-XXX",
      "type": 1,
      "body": "[物流通知] 您的包裹已送達..."
    }
  ]
}

測試 2:限制回傳數量

openclaw nodes invoke --node "V2514" --command sms.search --params '{"limit": 3}'

結果: ✅ 成功!只回傳 3 筆


測試 3:關鍵字搜尋

openclaw nodes invoke --node "V2514" --command sms.search --params '{"keyword": "淘寶", "limit": 3}'

結果: ✅ 成功!找到 3 筆關於「淘寶」的簡訊

{
  "count": 3,
  "messages": [
    { "address": "XXX-XXX-XXX", "body": "淘寶包裹已送達7-11..." },
    { "address": "XXX-XXX-XXX", "body": "您訂購的商品已於04/18送達..." },
    { "address": "XXX-XXX-XXX", "body": "您訂購的商品已於04/11送達..." }
  ]
}

測試 4:缺少電話號碼

openclaw nodes invoke --node "V2514" --command sms.send --params '{}'

結果: ✅ 正確的錯誤處理

INVALID_REQUEST: 'to' phone number required

測試 5:缺少訊息內容

openclaw nodes invoke --node "V2514" --command sms.send --params '{"to": "0912345678"}'

結果: ✅ 正確的錯誤處理

INVALID_REQUEST: 'message' text required

七、使用範例

範例 1:發送簡訊

openclaw nodes invoke --node "V2514" --command sms.send --params '{
  "to": "0912345678",
  "message": "馬上到,請等我一下!"
}'

範例 2:搜尋與特定號碼的簡訊

openclaw nodes invoke --node "V2514" --command sms.search --params '{
  "phoneNumber": "0912345678"
}'

範例 3:搜尋包含關鍵字的簡訊

openclaw nodes invoke --node "V2514" --command sms.search --params '{
  "keyword": "銀行",
  "limit": 10
}'

範例 4:搜尋已讀/未讀簡訊

# 搜尋未讀簡訊
openclaw nodes invoke --node "V2514" --command sms.search --params '{
  "isRead": false
}'

# 搜尋已讀簡訊
openclaw nodes invoke --node "V2514" --command sms.search --params '{
  "isRead": true,
  "limit": 10
}'

範例 5:自動化腳本 - 超商取貨通知

假設你想在有新包裹時自動發送提醒簡訊:

#!/bin/bash

# 搜尋最新的超商取貨通知
NOTIFICATIONS=$(openclaw nodes invoke --node "V2514" --command sms.search --params '{
  "keyword": "送達",
  "limit": 5
}')

# 如果有新的取貨通知,發送提醒簡訊給自己
if echo "$NOTIFICATIONS" | grep -q "送達"; then
  openclaw nodes invoke --node "V2514" --command sms.send --params '{
    "to": "0912345678",
    "message": "有新包裹!請記得去取貨"
  }'
fi

八、注意事項

1. 需要 SMS 權限

SMS 功能需要以下權限:

權限用途需要的指令
SEND_SMS發送簡訊sms.send
READ_SMS讀取簡訊sms.search

開啟方式:

  1. 在 Android 設定中授權「SMS」權限
  2. 路徑:設定 → 應用程式 → OpenClaw Node → 權限 → SMS

2. 需要 telephony 功能

sms.send 需要手機有電信功能( telephony)。如果你的裝置是 Wi-Fi 平板(沒有 SIM 卡),這個功能可能無法使用。


3. 簡訊字數限制

一般 SMS 簡訊有 160 個字元的限制。如果內容超過,系統會自動分割成多則簡訊發送。


4. sms.send 是危險命令

sms.send 屬於「危險命令」,預設不會啟用。你需要在 Gateway 設定中手動開啟:

openclaw config set gateway.nodes.allowCommands '["sms.send", ...]'

九、與其他功能的比較

SMS vs Notifications

功能用途資料類型
SMS發送/接收簡訊電信SMS
Notifications通知系統通知

SMS vs CallLog

功能用途資料類型
SMS簡訊內容文字訊息
CallLog通話記錄通話歷史

十、MMS(多媒體訊息)支援

sms.search 支援搜尋 MMS(多媒體訊息),需要設定 includeMms: true

openclaw nodes invoke --node "V2514" --command sms.search --params '{
  "phoneNumber": "0912345678",
  "includeMms": true
}'

十一、常見問題

Q1:為什麼 sms.send 發送失敗?

A:可能原因:

  • 沒有 SMS 權限
  • 裝置沒有 telephony 功能(如 Wi-Fi 平板)
  • 電話號碼格式錯誤
  • 行動網路連線問題

Q2:可以刪除簡訊嗎?

A:目前 OpenClaw Node App 的 SMS 功能只支援發送和搜尋,不支援刪除。


Q3:為什麼搜尋結果是空的?

A:可能原因:

  • 沒有 READ_SMS 權限
  • 設定的條件沒有符合的結果
  • 簡訊已被刪除

Q4:可以搜尋很久以前的簡訊嗎?

A:這取決於手機和 Android 系統的設定。一般來說,Android 會保存一定時間的簡訊,具體期限因手機而異。


十二、結語

SMS 功能是 OpenClaw Node App 中功能最完整的通訊功能之一。它讓你能夠:

  • 📤 發送簡訊:直接透過指令發送 SMS
  • 🔍 搜尋簡訊:用各種條件搜尋簡訊記錄
  • 📊 進階過濾:時間、關鍵字、聯絡人、已讀/未讀狀態
  • 📎 MMS 支援:搜尋多媒體訊息

這個功能完全運行在你的本地裝置上,不會將簡訊內容上傳到任何雲端伺服器,隱私安全有保障。


文章更新:2026-04-19

感謝微風提供測試設備和建議!

留言