# AIエージェントにSMSの認証コードを読ませる方法

> n8n、ブラウザ、独自のAIエージェントが、ログイン時にiPhoneへ届くSMSのコードを、Webhook経由で読む方法です。送るのはコードのSMSだけです。

最終更新日: 2026-10-25
正規のHTMLページ: https://www.fwrdsms.com/ja/blog/ai-agent-sms-verification-codes
Published: 2026-10-25

AIエージェントは、iPhoneのSMSを自分では読めないので、コードを渡します。ショートカットの「メッセージ」のオートメーションが、コードのSMSを1通ずつFwrdに渡し、FwrdがiPhoneから、エージェントが届くエンドポイントへ投稿します。エンドポイントは、n8nのWebhookノードや小さなサーバーなどです。エージェントは、正規表現で数字を取り出して入力します。ご自分のアカウント、または自動化する権限のあるアカウントだけで使ってください。

**必要なもの:** コードが届く番号のiOS 26以降のiPhone。ショートカットアプリ（最初から入っています）。[Fwrd](https://apps.apple.com/app/apple-store/id6759069713?pt=128544281&ct=ja-blog-ai-agent-codes&mt=8)。そして、エージェントが読める公開のHTTPSアドレスです。n8nのワークフロー、ZapierやMakeのWebhook、ご自分のサーバーなどが使えます。

## AIエージェントは、iPhoneに届くSMSのコードをどう受け取りますか？

Webhook経由です。コードがiPhoneに届くと、FwrdがJSONでエンドポイントへ投稿し、エージェントがそこから読み取ります。

iOSでは、どのアプリもエージェントも、メッセージの受信トレイを読めません。その理由は、[iPhoneにSMSのAPIはある？iOSでSMSを取り出す方法](https://www.fwrdsms.com/ja/blog/iphone-sms-api)で説明しています。許されているのは、ご自分で設定する「メッセージ」のオートメーションです。条件に合うSMSが届いたときに動き、それを次のアクションに渡します。そのアクションがFwrdです。FwrdはSMSを、iPhoneから直接、指定されたアドレスへ送ります。アカウントも、間に入るFwrdのサーバーもありません。

コードの届け先は、エージェントの種類で決まります。

- **n8nのAI Agentワークフロー。** Webhookノードが本文を受け取り、ワークフローがそれを次へ渡します。ノードの設定は、[iPhoneのSMSをn8nに転送する：Webhookノードの設定](https://www.fwrdsms.com/ja/blog/forward-iphone-sms-to-n8n)で説明しています。
- **ブラウザのエージェントや、独自のLLMエージェント。** 小さなサーバーが、各SMSを届いた時刻とともに保存し、エージェントは、コードを要求したあとに、最新のコードをそこへ問い合わせます。
- **ZapierやMakeのシナリオ。** Catch Hookまたはカスタムのwebhookが、実行を開始します。各ツールの手順は、[iPhoneのSMSをZapier、Make、n8nへ送信](https://www.fwrdsms.com/ja/iphone-sms-to-zapier-make-n8n)で説明しています。

ログインコードではなく、チャット型アシスタントにSMS全般を読ませたい場合は、[ChatGPTやClaudeはiPhoneのSMSを読めますか](https://www.fwrdsms.com/ja/blog/connect-chatgpt-to-iphone-texts)をご覧ください。

## エージェントにログインコードを扱わせてよいですか？

ご自分のアカウント、または自動化する権限のあるアカウントだけです。しかも、サービスがほかに良い手段を提供していない場合に限ります。

- **サービス自身のAPIトークンを優先します。** サービスがAPIキー、OAuth、サービスアカウントを提供しているなら、それをエージェントに渡してください。エージェントはログイン画面に触れず、そのトークンだけを個別に無効にできます。
- **ご自分のサインインには、パスキーや認証アプリを優先します。** SMSのコードは、ほかに手段のないログインのために取っておいてください。
- **エンドポイントを読める人は、コードを使えます。** アドレスに長い秘密の文字列を含め、使い終えたコードは削除し、エンドポイントのログは非公開にしてください。
- **サービスの規約を確認します。** 自動化したサインインを禁じているサービスや、コードの共有そのものを禁じている銀行もあります。

## コードのSMSをエージェントへ送る手順

コードだけを残すWebhookの送り先を追加し、続けて、コードのSMSをFwrdに渡す「メッセージ」のオートメーションを作ります。エンドポイント側の詳細は、[Webhookのガイド](https://www.fwrdsms.com/ja/guides/webhook)で説明しています。

1. **FwrdにWebhookを追加します。** Fwrdを開き、「+」をタップして「Webhook」を選びます。「設定」欄に、エンドポイントのHTTPSアドレス全体を貼り付け、「テストメッセージを送信」をタップしてエンドポイントにフィールドを見せたら、チェックマークで保存します。

2. **コードだけを残します。** 同じ送り先で、「転送するSMS」の「一部のSMSのみ」を選び、「コードらしいもの」をオンにします。4〜8桁のコードを含むSMSが残ります。条件は1つなので、無料プランでも使えます。

3. **「メッセージ」のオートメーションを作成します。** iOS 27では、ショートカットアプリを開き、「ライブラリ」＞「オートメーション」の順にタップして、「+」をタップします。「ショートカットを説明」が表示されたら、「編集」をタップします。「オートメーション」をタップして「メッセージ」を選び、「差出人」を「メッセージ」に変更して、スペースを1つ入力します。スペースを含むSMSなら、すべてFwrdのフィルタに届きます。iOS 26では、「オートメーション」タブを開き、「+」をタップして、「メッセージ」を選び、「メッセージが次を含む」にスペースを入力します。

4. **確認なしで実行されるようにします。** iOS 27では、トリガーの横の矢印をタップして「実行前に確認」がオフになっていることを確認します。ⓘ＞「プライバシー」で、「ロック中に実行を許可」がオンになっていることを確認します。iOS 26では「すぐに実行」を選び、「次へ」＞「新規ショートカットを作成」をタップします。

5. **Fwrdのアクションを追加します。** 「転送」を検索し、「メッセージをすべての送り先に転送」を追加します。「メッセージ」を「ショートカットの入力」に設定します（iOS 26では「ショートカットの入力」＞「メッセージ」）。戻るをタップして保存します（iOS 26では「完了」）。

6. **これで完了です。** 新しいコードのSMSが、iPhoneのロック中でも自動的にエンドポイントへ届きます。

### エンドポイントは何を受け取りますか？

`Content-Type: application/json`のPOSTで、届いたままのSMSの本文を受け取ります。メッセージは`content`に入り、同じ本文が、そのフィールドを読むサービスのために`text`にも入ります。`sender`フィールドが付くのは、Fwrdの「設定」で「差出人を含める」をオンにし、Fwrdのアクションで「差出人」を選んだ場合だけです。

次のcurlコマンドは、Fwrdと同じリクエストを送ります。最初のコードが届く前に、エージェント側を作り込めます。

```bash
curl -X POST "https://your-endpoint.example/sms/long-secret" \
  -H "Content-Type: application/json" \
  -d '{"content": "Your code is 123456", "text": "Your code is 123456"}'
```

コードを取り出すには、`content`の中で最初に現れる4〜8桁の数字を一致させます。

```python
import re

match = re.search(r"\b(\d{4,8})\b", body["content"])
code = match.group(1) if match else None
```

本文にタイムスタンプは含まれないため、時刻はご自分の側で記録し、ログインを試みた時刻より古いコードは無視してください。同じSMSに対する送信は、すべて同じ`Idempotency-Key`ヘッダを持つため、重複は取り除けます。n8nと小さなサーバーの動作例は、GitHubの[fwrd-sms-webhook-examplesリポジトリ](https://github.com/alanwtom/fwrd-sms-webhook-examples)にあります。

## エージェントにコードを渡す方法

| 方法 | コードを運ぶ人 | エージェントはあなたを待つか |
|---|---|---|
| 自分で読んで入力する | あなた | はい。ログインのたびに |
| エージェントが止まって、チャットで尋ねる | あなた | はい。ログインのたびに |
| 代わりにサービスのAPIトークンを使う | 誰も運ばない。コードがない | いいえ |
| Fwrdがエンドポイントへ投稿する | iPhoneが自動で | いいえ |

## この方法でできないこと

- **それ以前に届いたコードは読めません。** オートメーションが動くのは、新しいSMSだけです。
- **1つの番号で、同時に扱えるサインインは1回だけです。** 同じ番号でコードを要求する2つのエージェントは、互いのコードを読んでしまうことがあるので、サインインの手順を順番待ちにしてください。CIやQAのパイプラインについては、[iPhoneでSMSのワンタイムコードをCI・QAに渡す方法](https://www.fwrdsms.com/ja/blog/sms-otp-codes-ci-automation-iphone)で説明しています。
- **iPhoneの電源とオンラインの状態を保ちます。** 再起動後は、誰かが一度ロックを解除するまで転送が待機します。また、3日間ロックを解除しないiPhoneは自動的に再起動します。
- **Fwrdはログイン用のヘッダを送りません。** 秘密の文字列はアドレスに含めてください。Fwrdは、アドレス全体をiPhoneのキーチェーンに保存します。また、IPアドレスと、.localや.internalの名前は受け付けません。
- **一方向のみです。** Fwrdは、エージェントのためにiPhoneからSMSを送ることはできません。

## AIエージェントとSMSのコードについてのよくある質問

### エージェントは、ほかのSMSも読めますか？

通したものだけです。「コードらしいもの」をオンにすると、4〜8桁のコードがないSMSはFwrdが除外し、エンドポイントには届きません。

### コードはFwrdのサーバーを通りますか？

いいえ。Fwrdにはアカウントも、自前のサーバーもありません。各SMSはiPhoneからご自分のHTTPSエンドポイントへ直接送られます。

### ショートコードの送信元からのコードでも動きますか？

はい。オートメーションは送信元ではなくSMSの内容で一致を判断するので、連絡先にない短い番号からのコードも、Fwrdのフィルタに届きます。

### 料金はいくらですか？

2026年10月時点で、Fwrdは毎月15件まで無料で、1通のSMSは、いくつの送り先に届いても1件として数えます。Fwrd Proなら上限がなくなり、料金は米国で月額$4.99、または年額$29.99です。App Storeには、お使いの国または地域の通貨で価格が表示されます。

## あわせて読みたい

- [iPhoneにSMSのAPIはある？iOSでSMSを取り出す方法](https://www.fwrdsms.com/ja/blog/iphone-sms-api)
- [ChatGPTやClaudeはiPhoneのSMSを読めますか](https://www.fwrdsms.com/ja/blog/connect-chatgpt-to-iphone-texts)
