twilio について
開発者向けの Twilio REST API エミュレーターで、メッセージ、認証、通話、会話をローカルでテストできます。初期データと受信イベントのシミュレーション用ルートを備えています。
主な機能
- 01状態を保持する Twilio REST API エミュレーション
- 02初期アカウントと認証情報
- 03Messaging、Verify、Voice、Conversations のルート
- 04受信イベントとコールバックのシミュレーション
- 05ローカル認証コードの確認
活用シーン
- 01送信メッセージとステータスコールバックのテスト
- 02OTP 認証フローの検証
- 03受信 SMS と通話のシミュレーション
- 04実際の Twilio 通信なしでのアプリテスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ vercel-labs/ emulate --skill twilioインストール後、Claude Code で/twilioを入力して読み込まれたか確認します。
詳細
Twilio API エミュレーター
シード済みアカウント、Auth Token、API キー、着信電話番号、Programmable Messaging、Messaging Services、Verify、基本的な Voice 通話、Conversations REST リソース、署名付き Webhook、ローカルシミュレータールート、インスペクターを備えた、状態を保持する Twilio REST エミュレーションです。
起動
ローカルリスナーはデフォルトで 127.0.0.1 にバインドします。コンテナやほかのマシンからアクセスするには、CLI に --host 0.0.0.0 を渡すか、createEmulator に hostname: '0.0.0.0' を指定します。クライアントからアクセス可能な URL を通知するには、--base-url または baseUrl を設定します。
npx emulate --service twilio
デフォルト URL:すべてのサービスを起動した場合は http://localhost:4013、Twilio のみを起動した場合は http://localhost:4000 です。
デフォルト
TWILIO_ACCOUNT_SID=AC00000000000000000000000000000000
TWILIO_AUTH_TOKEN=twilio_test_auth_token
TWILIO_API_KEY=SK00000000000000000000000000000000
TWILIO_API_SECRET=twilio_test_api_secret
TWILIO_PHONE_NUMBER=+15551234567
TWILIO_VERIFY_SERVICE_SID=VA00000000000000000000000000000000
URL マッピング
| 実際の Twilio URL | エミュレーター URL |
|---|---|
https://api.twilio.com/2010-04-01/... | $TWILIO_EMULATOR_URL/2010-04-01/... |
https://messaging.twilio.com/v1/... | $TWILIO_EMULATOR_URL/messaging/v1/... |
https://verify.twilio.com/v2/... | $TWILIO_EMULATOR_URL/verify/v2/... |
公式 Node SDK は Twilio 製品の絶対 URL を生成します。SDK のテストでは、これらのホストを上記のエミュレータープレフィックスに書き換えるカスタムリクエストクライアントを使用してください。
認証
HTTP Basic 認証では、次のいずれかを受け付けます。
- Account SID と Auth Token
- API Key SID と API Key Secret
主なルート
POST /2010-04-01/Accounts/{AccountSid}/Messages.json- 送信メッセージを作成GET /2010-04-01/Accounts/{AccountSid}/Messages.json- メッセージを一覧表示POST /2010-04-01/Accounts/{AccountSid}/Calls.json- 送信通話を作成POST /verify/v2/Services/{ServiceSid}/Verifications- 検証を開始POST /verify/v2/Services/{ServiceSid}/VerificationCheck- 検証コードを確認POST /conversations/v1/Services/{ServiceSid}/Conversations- Conversation を作成POST /conversations/v1/Services/{ServiceSid}/Conversations/{ConversationSid}/Participants- 参加者を追加POST /conversations/v1/Services/{ServiceSid}/Conversations/{ConversationSid}/Messages- メッセージを追加POST /_twilio/simulate/inbound-message- SMS の着信をシミュレートPOST /_twilio/simulate/message-status- メッセージステータスコールバックをシミュレートPOST /_twilio/simulate/inbound-call- 着信通話をシミュレート
SMS と OTP のテスト
- シード済み Verify Service のコードは
123456です。 - Verification の作成時に
CustomCodeを使用すると、その検証専用のコードを指定できます。 - E2E テストで最新のローカルコードを取得するには、Basic 認証を使って
GET /_twilio/simulate/verification-code?To=...&ServiceSid=...を使用します。 - ローカルの Verify 状態を強制的に設定するには、
VerificationSidまたはToを指定してPOST /_twilio/simulate/verification-statusを使用します。 - SMS の着信 Webhook をテストするには、
POST /_twilio/simulate/inbound-messageを使用します。 - SMS の着信時は、割り当てられた Messaging Service の
inbound_request_urlが優先され、設定されていない場合は電話番号のsms_urlが使用されます。 - 送信メッセージのステータスコールバックをテストするには、
POST /_twilio/simulate/message-statusを使用します。
現在の制限
実際の SMS、MMS、WhatsApp、メール、音声、通信事業者、コンプライアンス、請求、SendGrid、Studio、Flex、TaskRouter、Video、Sync、Segment、Conversations SDK の WebSocket 動作、および完全な TwiML インタープリターの動作は実装されていません。
組み込みエミュレーターと併用するカスタムエミュレーター
npx emulate init --custom inventory を使用して、サードパーティ API エミュレーターとテストをひな形から作成します。組み込みの { emulator: "twilio" } などのエントリーと並べて、emulate の defineConfig を使い、emulate.config.ts に登録します。npx emulate start --watch を実行すると、インポートが再読み込みされ、表示された /_emulate URL でカスタム状態を確認できます。再読み込みが成功すると、実行状態はシードにリセットされます。既存のフラットなシード設定も引き続き使用できます。--config を指定すると、明示したファイルが選択されます。サードパーティ API エミュレーターの作成とテストについては、https://emulate.dev/docs/custom-emulators を参照してください。