iPhone 有簡訊 API 嗎?在 iOS 上取得簡訊
作者:Fwrd · · 更新於
沒有,iPhone 沒有公開的簡訊 API:iOS 不允許 App 讀取你的簡訊,甚至不讓它知道有簡訊抵達。受支援的做法,是在 Apple 的「捷徑」App 中建立一次「訊息」自動化操作,由它把每則符合條件的簡訊交給一個動作。Fwrd 就是給開發者用的那個動作:它會把每則簡訊從 iPhone 以 JSON 格式 POST 到你自己的 HTTPS Webhook。
你需要: 一支執行 iOS 26 或以上版本的 iPhone、「捷徑」App(手機裡本來就有),以及一個接受 JSON POST 的 HTTPS 端點,例如你自己的伺服器,或 Zapier、Make、n8n 的 Webhook。
iOS App 能讀取簡訊嗎?
不能。第三方 iOS App 無法讀取「訊息」收件匣,也不會被告知有簡訊抵達。從 iPhone 取出簡訊的每一種方式,都要經過使用者刻意設定的東西。
Apple 開發者論壇 2017 年的一則回覆講得很清楚:App 不被允許看到簡訊,甚至不能知道簡訊已經抵達。2025 年 10 月,一位 Apple 工程師在論壇上表示,macOS 同樣沒有取得使用者簡訊的 API,所以登入你Apple 帳號的 Mac 也不是後門。
TelephonyMessagingKit 呢?
TelephonyMessagingKit 確實存在,但只適用於取代「訊息」成為預設電信業者訊息 App 的 App,而且僅限歐盟。它不是讓一般 App 讀取你簡訊的辦法。
Apple 的文件說,這個框架處理 iPhone 上的 SMS、MMS 和 RCS,但 App 需要特殊的授權,只有在使用者選它作為預設電信業者訊息 App 時才能運作,而且使用者需要歐盟的帳號,裝置也要在歐盟。對於要把簡訊送進指令碼、資料庫或 AI 代理程式來說,它不是合適的工具。
那 App 是怎麼填入簡訊驗證碼的?
透過「自動填寫」,而不是讀取訊息。iOS 會在收到的簡訊中找出一次性驗證碼,並顯示在鍵盤上方;使用者點一下它之後,App 才會收到驗證碼。
Apple 的在文字輸入視圖中啟用「密碼自動填寫」指南,把 One-time code 列為內容類型,並說明可以從簡訊登入流程自動完成安全碼。在 UIKit 中,那就是 textContentType = .oneTimeCode。要讓你自己 App 的登入更順暢,這樣就夠了。
如何把 iPhone 簡訊送進你自己的程式碼?
建立一個「捷徑」的「訊息」自動化操作,並加入 Fwrd 的動作,它會把每則符合條件的簡訊從 iPhone 以 JSON 格式 POST 到你的端點。Apple 的訊息觸發器會在收到你加入的寄件人傳來的訊息,或含有你加入的詞組的訊息時執行。
以下步驟使用 Fwrd 的 Webhook 轉寄目標:
在 Fwrd 中加入 Webhook。 打開 Fwrd,點一下 +,選擇 Webhook。把你完整的 HTTPS 位址貼到「設定」欄位,點一下「傳送測試訊息」,讓你的端點看到這些欄位,然後儲存。
建立「訊息」自動化操作。 在 iOS 27 上,打開「捷徑」,點一下「資料庫」,再點一下「自動化」,然後點一下 +。如果看到「描述捷徑」,請點一下「編輯」。點一下「自動化操作」,再點一下「訊息」。在 iOS 26 上,打開「自動化」標籤頁,點一下 +,然後選擇「訊息」。
選擇要傳送哪些簡訊。 選擇「訊息包含」(在 iOS 27 上,把「寄件人」改為「訊息」),然後輸入你的簡訊裡會出現的字詞,例如 code。或者輸入一個空格,傳送任何含空格的簡訊。
讓它無需詢問便自動執行。 在 iOS 27 上,點一下觸發器旁邊的箭頭,確認「執行前確認」已關閉。在 ⓘ 底下的「隱私權」中,確認「鎖定時允許執行」已開啟。在 iOS 26 上,選擇「立即執行」,然後點一下「下一步」和「新增捷徑」。
加入 Fwrd 的動作。 搜尋「轉寄」,加入 Fwrd 的「轉寄訊息到所有轉寄目標」。點一下它的「訊息」欄位,選擇「捷徑輸入」(在 iOS 26 上,依序選擇「捷徑輸入」和「訊息」)。點一下返回即可儲存(在 iOS 26 上點一下「完成」)。
這樣就完成了。 含有你的字詞的新簡訊,現在會自動送到你的端點,iPhone 解鎖或鎖定時都一樣。
JSON 長什麼樣子?
Fwrd 會把每則簡訊以 POST 傳送到你的 Webhook,標頭為 Content-Type: application/json。預設的內容主體會把訊息原封不動放進去兩次,因為 Mattermost 和 Rocket.Chat 讀取的是 text:
{
"content": "Your code is 482913",
"text": "Your code is 482913"
}
沒有時間戳記。如果你在 Fwrd 的「設定」中開啟「附上寄件人」,並在「捷徑」裡 Fwrd 的動作上選擇「寄件人」,內容主體還會多一個 sender 欄位。同一則簡訊的每次嘗試都帶有相同的 Idempotency-Key 標頭,所以你可以丟棄重複的請求。15 秒內回傳任何 2xx 回應,都算已送達,重新導向則會被拒絕。端點這一側的完整說明,請見 Webhook 指南。
各種做法一覽
| 做法 | 能讀取收到的簡訊嗎? | 誰能用 |
|---|---|---|
| 公開的簡訊 API | iOS 上不存在 | 沒有人 |
| TelephonyMessagingKit | 能,以預設訊息 App 的身分 | 電信業者訊息 App,僅限歐盟 |
| 密碼自動填寫 | 只有驗證碼,而且要使用者點一下 | 任何 App 的登入欄位 |
| 「捷徑」+ Fwrd | 能,符合你自動化操作的簡訊 | iOS 26 或以上版本的任何人 |
Fwrd 幫你處理繁瑣的串接:
- 不需要帳號。 Fwrd 沒有登入,也沒有 Fwrd 伺服器;每則簡訊都從你的 iPhone 直接送到你的 URL。
- 篩選條件。 每個 Webhook 都可以只保留含有你所選字詞的簡訊、看起來像驗證碼的簡訊,或特定時段的簡訊。
- 重試和機密都幫你處理好。 如果傳送逾時、遇到 429 或 5xx,或連線中斷,Fwrd 會再試,最多兩次,並把你的 URL 保存在 iPhone 的鑰匙圈,而不是捷徑裡。
- 八個轉寄目標。 同一個動作也涵蓋電子郵件、另一支手機或 iMessage、WhatsApp、Discord、Slack、Microsoft Teams 和 Telegram。
iPhone 無法當作簡訊閘道的原因
iPhone 無法成為你伺服器的簡訊閘道。iOS 沒有讓伺服器透過它傳送簡訊的 API,所以 Fwrd 只負責接收:簡訊在 iPhone 上進來,再送出到你的端點。
- 從 API 傳送。 能從 API 傳送簡訊的閘道 App 都在 Android 上執行;textbee.dev 在它的常見問題中說,目前只支援 Android 裝置(2026 年 10 月 16 日查閱)。
- 必須有規則。 自動化操作只處理含有你挑選字詞的簡訊,或你「聯絡人」裡的人傳來的簡訊。一個空格能符合任何含空格的簡訊。
- 手機保持開機並連上網路。 接收簡訊的 iPhone 在簡訊抵達時必須開機,並連上 Wi-Fi 或行動數據。重新啟動後,轉寄會等到你解鎖一次才繼續。
- 只有文字。 圖片不會送過去,回覆仍然要從 iPhone 本身傳出。
常見問題
我可以讀取 iPhone 上已有的舊簡訊嗎?
不行。「訊息」自動化操作只會對你設定之後抵達的新簡訊執行。
它能搭配 Zapier、Make 或 n8n 使用嗎?
可以。把 Zapier 的 catch hook、Make 的自訂 Webhook,或 n8n Webhook 節點的正式 URL,貼到 Fwrd 的 Webhook 轉寄目標,每則符合條件的簡訊就會啟動你的工作流程。每一種的步驟,請見把 iPhone 簡訊傳送到 Zapier、Make 或 n8n。
iMessage 也算嗎?
算。「訊息」自動化操作會對抵達「訊息」App 的訊息執行,iMessage 也包含在內,所以符合條件的 iMessage 會和簡訊一樣送到你的 Webhook。
要花多少錢?
Fwrd 每月有 15 則免費轉寄,同一則簡訊不論轉寄到幾個轉寄目標,都只算一次。Fwrd Pro 可取消次數限制,每月 $4.99 或每年 $29.99,均為美國售價,以美元計。
想把 iPhone 簡訊變成 JSON 嗎?
Fwrd 會把每則符合條件的簡訊從你的 iPhone POST 到你自己的 HTTPS Webhook,沒有帳號,中間也沒有 Fwrd 伺服器。每月有 15 則免費轉寄。
每月 15 則免費轉寄。Fwrd Pro 移除轉寄和篩選條件的上限,並新增「永不轉寄」清單,每月 $4.99 或每年 $29.99,年度方案為符合資格的客戶提供 7 天免費試用。
iPhone · iOS 26 或以上版本