iPhoneにSMSのAPIはある?iOSでSMSを取り出す方法
Fwrd · · 更新:
いいえ、iPhoneにSMSの公開APIはありません。iOSでは、アプリが、SMSを読み取ることも、SMSが届いたことを知ることもできません。認められている方法は、Appleのショートカットアプリで「メッセージ」のオートメーションを一度作り、条件に合うSMSをアクションに渡すことです。Fwrdは、開発者向けのそのアクションです。SMSを、iPhoneからご自分のHTTPS Webhookへ、JSONで投稿します。
必要なもの: iOS 26以降のiPhone、ショートカットアプリ(iPhoneに最初から入っています)、JSONのPOSTを受け付けるHTTPSのエンドポイント。たとえば、ご自分のサーバーや、ZapierまたはMake、n8nのWebhookです。
iOSアプリはSMSを読み取れますか?
読み取れません。サードパーティのiOSアプリは、「メッセージ」の受信箱を読み取れず、SMSが届いたことも知らされません。iPhoneからSMSを取り出す方法は、すべて、本人があらかじめ設定したものを経由します。
Appleのデベロッパフォーラムにある2017年の返信は、はっきり述べています。アプリはSMSメッセージを見ることも、届いたことを知ることも許されていません。2025年10月には、Appleのエンジニアがフォーラムで、macOSにもユーザーのSMSメッセージに触れるAPIはないと述べました。そのため、Apple AccountでサインインしたMacは、裏口にはなりません。
TelephonyMessagingKitではどうですか?
TelephonyMessagingKitは実在しますが、「メッセージ」アプリの代わりに、通信事業者向けの既定のメッセージアプリになるアプリ専用で、EUでのみ使えます。普通のアプリがSMSを読み取るための方法ではありません。
Appleのドキュメントによると、このフレームワークはiPhoneのSMS、MMS、RCSを扱います。ただし、アプリには特別なエンタイトルメントが必要で、本人がそのアプリを通信事業者向けの既定のメッセージアプリに選んだときだけ動きます。さらに、本人がEUのアカウントを持ち、デバイスがEU内にある必要があります。スクリプト、データベース、AIエージェントでSMSを扱う用途には、向いていません。
では、アプリはSMSのコードをどう入力しているのですか?
メッセージを読むのではなく、AutoFillを使っています。iOSが届いたSMSにあるワンタイムコードを見つけ、キーボードの上に候補として表示します。アプリがコードを受け取るのは、本人がそれをタップしたときだけです。
Appleのテキスト入力ビューでパスワードのAutoFillを有効にするガイドは、One-time codeをコンテンツタイプの1つに挙げ、SMSのログインフローからセキュリティコードを自動入力できると説明しています。UIKitではtextContentType = .oneTimeCodeです。ご自分のアプリのログインを滑らかにするだけなら、これで足ります。
iPhoneのSMSを自分のコードに届けるには?
ショートカットで「メッセージ」のオートメーションを作り、Fwrdのアクションを追加します。Fwrdは、条件に合うSMSをiPhoneからエンドポイントへJSONで投稿します。Appleの「メッセージ」トリガーは、追加した差出人から、または追加したフレーズを含むメッセージが届いたときに実行されます。
以下の手順では、FwrdのWebhookの送り先を使います。
FwrdでWebhookを追加します。 Fwrdを開き、「+」をタップして、Webhookを選びます。「設定」欄にHTTPSのアドレス全体を貼り付け、「テストメッセージを送信」をタップしてエンドポイントにフィールドを届け、保存します。
「メッセージ」のオートメーションを作成します。 iOS 27では、ショートカットアプリを開き、「ライブラリ」、「オートメーション」、「+」の順にタップします。「ショートカットを説明」が表示されたら、「編集」をタップします。「オートメーション」、「メッセージ」の順にタップします。iOS 26では、「オートメーション」タブを開き、「+」をタップして、「メッセージ」を選びます。
送るSMSを選びます。 「メッセージが次を含む」を選び(iOS 27では、「差出人」を「メッセージ」に変更します)、SMSに含まれる単語を入力します。例は
codeや「コード」です。スペースを1つだけ入力すると、スペースを含むすべてのSMSを送れます。確認なしで実行されるようにします。 iOS 27では、トリガーの横の矢印をタップし、「実行前に確認」がオフになっていることを確認します。「ⓘ」>「プライバシー」で、「ロック中に実行を許可」がオンになっていることを確認します。iOS 26では、「すぐに実行」を選び、「次へ」、「新規ショートカットを作成」の順にタップします。
Fwrdのアクションを追加します。 「転送」で検索し、Fwrdの「メッセージをすべての送り先に転送」を追加します。その「メッセージ」欄をタップし、「ショートカットの入力」を選びます(iOS 26では、「ショートカットの入力」、「メッセージ」の順)。戻るをタップして保存します(iOS 26では「完了」)。
これで完了です。 単語を含むSMSが、iPhoneのロック中でも自動的にエンドポイントへ届きます。
JSONはどんな形ですか?
Fwrdは、SMSをContent-Type: application/jsonのPOSTでWebhookに送ります。本文には、届いたとおりのメッセージが、標準では2回入ります。MattermostとRocket.Chatがtextを読むためです。
{
"content": "Your code is 482913",
"text": "Your code is 482913"
}
タイムスタンプはありません。Fwrdの「設定」で「差出人を含める」をオンにし、ショートカットのFwrdのアクションで「差出人」を選ぶと、本文にsenderフィールドも加わります。同じSMSのリクエストは、再送でも同じIdempotency-Keyヘッダを持つので、重複を捨てられます。15秒以内の2xxの応答は、配信できたものとして扱われ、リダイレクトは拒否されます。エンドポイント側の詳細は、Webhookのガイドにまとめています。
方法の比較
| 方法 | 受信したSMSを読める? | 使える人 |
|---|---|---|
| 公開のSMS API | iOSには存在しない | 誰も使えない |
| TelephonyMessagingKit | 読める。既定のメッセージアプリとして | 通信事業者向けのメッセージアプリ。EUのみ |
| パスワードのAutoFill | コードだけ。本人がタップしたとき | どのアプリのログイン欄でも |
| ショートカット+Fwrd | 読める。オートメーションに合うSMS | iOS 26以降の誰でも |
Fwrdが、その下ごしらえを代わりに行います。
- アカウントは不要です。 Fwrdにサインインはなく、Fwrdのサーバーもありません。SMSはiPhoneからURLへ直接届きます。
- フィルタ。 Webhookごとに、選んだ単語を含むSMS、認証コードらしいSMS、特定の時間帯のSMSだけを残せます。
- 再試行とシークレットの管理。 送信がタイムアウトしたり、429や5xxを返されたり、接続が切れたりすると、Fwrdは最大2回まで再試行します。URLは、ショートカットの中ではなく、iPhoneのキーチェーンに保存されます。
- 8つの送り先。 同じアクションで、メール、別の電話またはiMessage、WhatsApp、Discord、Slack、Microsoft Teams、Telegramにも送れます。
SMSゲートウェイとしてiPhoneにできないこと
iPhoneを、サーバー用のSMSゲートウェイとして使うことはできません。iOSには、サーバーがiPhone経由でSMSを送れるAPIがないため、Fwrdは受信専用です。SMSはiPhoneで受け取り、エンドポイントへ送り出します。
- APIからの送信。 APIからSMSを送るゲートウェイアプリは、Androidで動きます。textbee.devはFAQで、現時点ではAndroidデバイスでのみ動作すると書いています(2026年10月16日時点)。
- ルールが必要です。 オートメーションが対象にするのは、選んだ単語を含むSMSか、連絡先にいる人からのSMSです。スペース1つで、スペースを含むすべてのSMSに一致します。
- iPhoneの電源が入っていて、オンラインである必要があります。 SMSを受け取るiPhoneは、届いたときに電源が入り、Wi-Fiまたはモバイルデータ通信につながっている必要があります。再起動後は、一度ロックを解除するまで転送を待ちます。
- テキストのみです。 写真は転送されません。返信は、これまでどおりiPhone本体から送ります。
よくある質問
iPhoneにすでにある古いSMSを読み取れますか?
読み取れません。メッセージのオートメーションは、設定した後に届いた新着のSMSに対してだけ動きます。
Zapier、Make、n8nと使えますか?
はい。ZapierのCatch Hook、Makeのカスタムwebhook、n8nのWebhookノードの本番URLをFwrdのWebhookの送り先に貼り付ければ、条件に合うSMSごとにワークフローが始まります。手順はiPhoneのSMSをZapier、Make、n8nに送るにあります。
iMessageも対象になりますか?
はい。メッセージのオートメーションは、メッセージアプリに届くメッセージで動くので、iMessageも対象です。条件に合うiMessageは、SMSと同じようにWebhookへ届きます。
費用はいくらかかりますか?
Fwrdは毎月15件まで無料で、1通のSMSは、いくつの送り先に届いても1件として数えます。Fwrd Proなら上限がなくなり、米国での料金は月額$4.99、または年額$29.99です。
iPhoneのSMSをJSONで受け取りたいですか?
Fwrdは、条件に合うSMSをiPhoneから、ご自分のHTTPS Webhookへ投稿します。アカウントは不要で、Fwrdのサーバーも通りません。毎月15件の転送は無料です。
毎月15件まで無料。Fwrd Proなら、転送とフィルタの上限がなくなり、「転送しない」リストも使えます。料金は月額$4.99、または年額$29.99で、年額プランには対象の方向けに7日間の無料トライアルがあります。
iPhone · iOS 26以降