Twilioは、Programmable SMSの送信メッセージのステータスをStatus Callbackで提供しています。これらのコールバックは、メッセージが配信されたか、失敗したか、またはその他の配信上の問題が発生したかを確認するのに役立ちます。 また、すべてのメッセージの状態を簡単に確認するための高度な分析を構築することができます。
Callbackはどうのように動作するか
メッセージは一度作成されると、最終的に完成するまで、複数の状態を経て進行します。REST APIを使用して送信されるメッセージは、これらの状態を順番に通過します。
- Queued もしくは Accepted: TwilioがAPIを受け入れ完了し、メッセージを送信するためのキュー(列)に追加しました。
- Sending: Twilio スーパーネットワーク(キャリアパートナー)にメッセージ送信リクエストを送信しています。
- Sent: Twilio はスーパーネットワーク(キャリアパートナー)からTwilioが送信したリクエストを受信した旨の通知を受け取りました。
- Delivered: Twilio はスーパーネットワーク(キャリアパートナー)からメッセージが配信(目的の携帯電話に)されたことを確認した旨の通知を受取りました。
その他Undelivered と Failed 、もしくはSentのまま先に進まない場合があります。より詳しい情報は SMSとMMSのステータスとその意味(英語)をご覧ください。
Request Status Callbacks をリクエストする方法
StatusCallback
パラメータを使用すると、送信メッセージのステータスが変更されたときに通知を受け取ることができます。ステータスが変更されるたびに、Twilio は API リクエストの StatusCallback
パラメータで指定された url に、新しいステータスと、その他有用なパラメータ(英語)とともに非同期 Webhook 送出します。
以下は、cURLスクリプトの例です(正しい使い方は5行目をご覧ください)
curl -X POST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json \
--data-urlencode "To=+13105555555" \
--data-urlencode "From=+12125551234" \
--data-urlencode "Body=Hello from Twilio" \
--data-urlencode 'StatusCallback=https://www.mysite.com/sms/callback' \
-u "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token"
この例では、送信者 (212) 555-1234 (+12125551234) から送信先番号 (310) 555-5555 (+131055555) に「Twilioからこんにちは」というメッセージを送信します。このスクリプトを動作させるには、以下の更新を行った後、ターミナルウィンドウに貼り付けてください。
- 行 1 Twilio Account SID を入力 (ACXXXXXXXXXXXの部分)
- 行 2 有効な送信先番号
- 行 3 有効な送信元番号
- 行 4 メッセージ本文
- 行 5 Status Callback を受け取るURL
- 行 6 AccountSIDとAuth Token を入力
メッセージの追跡については、メッセージをモニターするAPIドキュメント(英語)を参照してください。