メッセージの送信
TwilioのREST APIを使用し、SMSメッセージをTwilioの電話番号から世界中の携帯電話に送信できます。
このガイドでは、Twilio Programmable Messaging APIの使用法について説明します。
メッセージを初めて送信するためのステップバイステップガイドは、C#、Java、Node.js、PHP、Python、Rubyの言語別Programmable SMSクイックスタートをご覧ください。
また、Messageリソースの詳細なAPIリファレンスをご確認いただくこともできます。
SMSを介してワンタイムパスコード(OTP)を送信し認証する場合は、電話認証と2要素認証(2FA)用のVerify APIを参照してください。
Twilio APIによるSMS送信
新しい発信メッセージをTwilioの電話番号から外部の番号に送信する場合は、自分のアカウントのMessageリソースに対してHTTP POSTを実行します。
/2010-04-01/Accounts/{AccountSid}/Messages
cURLを用いてAPIへ直接ポストを実行するか、あるいは6言語(C#、Java、Node.js、PHP、Python、Ruby)のヘルパーライブラリーを利用してメッセージを送信できます。
APIを介して新規メッセージを作成する場合、To
、From
、Body
をパラメーターに含めます。
To
このパラメーターでは、SMSメッセージの宛先電話番号を指定します。 この番号には「+」と国コードを付加します(例: +16175551212
などのE.164形式)。
トライアルモードでメッセージを送信するには、まず「To」宛先電話番号を確認し、その番号がお客様所有の番号であることをTwilioに認識させます。トライアルアカウントから未確認の番号にSMSの送信を試行すると、APIからエラー21219が返されます。
電話番号を認証するには、番号をコンソール内の[Verified Caller ID](認証済み発信者ID)に追加します。
From
From
には、Twilioの電話番号やショートコード、そのメッセージを送信するMessaging Serviceを指定します。ご自身が所有するTwilioの電話番号に「+」と国コードに付加したもの(+16175551212
などのE.164形式)である必要があります。
Twilioの電話番号を初めて入手する場合は、コンソールにアクセスし、SMS機能を利用可能な番号を見つけます。ショートコードを使用する場合は、同様にコンソールから申し込むことができます。
ご自身の携帯電話番号からメッセージを送っているように見せかけるためには、はじめにその電話番号をTwilioに移転する必要があります。詳細については、こちらをご覧ください。
ヒント: メッセージングサービスからのメッセージの送信
SMSメッセージを送信する際に、Messaging Service SIDをFrom
パラメーター値として入力することもできます。Messaging Service SIDを使用する場合、Twilioはお客様のサービスプールの電話番号のいずれかを使用し、メッセージを自動的に送信します。
メッセージングサービスは電話番号のコンテナに例えられ、ルーティングインテリジェンスやコンテンツ機能などの一般的なユースケースにバンドルされています。詳細については、Messaging ServiceからのSMSメッセージ送信に関するガイドをご確認ください。
Body
Body
パラメーターには、送信するメッセージの全文が含まれ、1,600文字までという制限があります。
メッセージの本文がGSM-7で160文字(またはUCS-2で70文字)を超える場合、Twilioはメッセージをセグメント化されたSMSとして送信します。
Twilioは、From
パラメーターに有効なTwilioの電話番号が含まれていることを検証した後、コールをキューに追加するか、エラーを返します。
リクエストに含めることのできるパラメーター一覧については、Messages向けの詳細なAPIリファレンスをご確認ください。Twilio側から返されるパラメーターをご確認いただくこともできます。
メッセージステータスのモニタリング
APIコールにStatusCallback
URLを含めることにより、メッセージに関する情報をどこにPOSTすべきかをTwilioに知らせることができます。
Twilioは、StatusCallback
URLに対してPOSTリクエストを実行します。
Twilioは、メッセージステータスが以下のいずれかに変更されるたびに、このURLにPOSTします。
- queued(キューに追加)
- failed(失敗)
- sent(送信済み)
- delivered(配信済み)
- undelivered(未達)
お客様のコールバックURLにTwilioが送信するパラメーターには、標準リクエストパラメーターと、いくつかの一意なメッセージングパラメーターのサブセットが含まれます。MessageリソースのAPIリファレンスの一覧を参照してください。
以下は、配信済みメッセージのStatusCallback URLに送信されたリクエストパラメーターの一例です。
{
"SmsSid": "SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"SmsStatus": "delivered",
"MessageStatus": "delivered",
"To": "+15558675310",
"MessageSid": "SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"AccountSid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"From": "+15017122661",
"ApiVersion": "2010-04-01"
}
メッセージへのメディアの挿入
テキストのみのメッセージは地球上のほぼすべての場所に送信できますが、メディア付きメッセージの送信は現在米国とカナダのみで可能です。
MMSメッセージの送信はSMSの送信によく似ていますが、新しいパラメーターであるMediaUrl
が含まれています。このパラメーターは、メッセージに挿入するメディアのURLを指定します。
Twilioは、.gif
、.png
、.jpeg
コンテンツをサポートしており、受信者のデバイスに合わせて画像をフォーマットします。お客様のMediaUrl
のContent-TypeヘッダーがそのURLのメディアと一致しない場合、Twilioはそのリクエストを拒否します。
他のMIMEタイプもAPIは受け入れますが、デバイスの性能に合わせて変更することはありません。
メッセージメディアのサイズの上限は、5MBです。
1つのメッセージの本文内で複数の画像を送信するには、POSTリクエストに複数のMediaUrl
値を設定する必要があります(1メッセージ当たり10まで)。
英数字の送信者IDの使用
英数字の送信者IDは、ブランドの単方向メッセージに使用されます。「From」値にE.164形式のTwilioの電話番号を使用する代わりに、独自のビジネスブランドなどのカスタム文字列を使用できます。英数字の送信者IDは、SMSをこの機能をサポートしている国に送信する場合は、追加料金なしで使用できます。
英数字の送信者IDからのメッセージ送信をサポートしているかどうかは、宛先(「To」)の電話番号により異なります。どこでもサポートされているわけではありません。この機能をサポートしている国の全リストに関する記事を参照してください。
回数制限についての注意事項
1人のTwilioの送信者(番号または英数字の送信者ID)が一度に複数のメッセージを送信する場合、Twilioはそのメッセージを配信用のキューに追加します。使用している送信者に応じて、メッセージの回数制限は異なります。米国やカナダのロングコード番号からのメッセージについては、制限は1秒当たり1つのメッセージセグメント(MPS)となります。米国やカナダ以外のロングコード番号、あるいは英数字の送信者IDからメッセージを送信する場合、上限値は10MPSとなります。
指定した回数を超えるメッセージのAPIリクエストは、キューに追加されてTwilioの送信者の送信レートで処理されます。
アプリケーションが1人の送信者から4時間以上相当のアウトバウンドトラフィックをキューに追加しようとすると(1つのロングコード電話番号で14,400を超えるメッセージセグメントをカナダに送信するキューへの配置など)、超過メッセージはエラー30001(キューのオーバーフロー)により失敗します。
アウトバウンドSMSスループットの増強が必要な場合は、Messaging Serviceのご利用をお勧めします。
1件/秒以上のメッセージレートで大量のメッセージを送信する予定がある場合は、ショートコードの申請をご検討ください。
ショートコードは、ロングコード番号よりも多くの回数メッセージを送信することができるため、お客様により適したオプションです。
次のステップ
サポートが必要ですか?
コーディングに関するご質問、ご不明点等ございましたら、お問い合わせからご連絡いただくか、TwilioのStack Overflow Collectiveにアクセスいただくか、Stack OverflowサイトでTwilioタグを検索してください。