フェイルオーバーでのメッセージ送信
Vonage Messages APIでメッセージを送信すると、拒否されることがあります。一度のAPIリクエストで、フェイルオーバー・メッセージを定義し、代わりに送信することができます。例えば、顧客のデバイスがRCSのようなプライマリチャネルをサポートしていない場合、代替チャネルを通じてメッセージを受信し続けることができます。
このガイドでは、リクエストでメッセージのフェイルオーバーを設定する方法と、 コールバックを通して配送ステータスを監視する方法を説明します。
メッセージのフェイルオーバーによるリクエストの送信
この例では、RCSテキストメッセージが最初に送信され、そのメッセージ が失敗した場合にSMSメッセージが続く。リクエストの構造は、プライマリチャネルの標準メッセージの送信と同じである。 failover 配列は以下の通り:
{
"to": "447700900000",
"from": "Vonage",
"channel": "rcs",
"message_type": "image",
"image": {
"url": "https://example.com/image.jpg",
"caption": "This is an image sent via RCS using the Vonage Messages API."
},
"failover": [
{
"to": "447700900000",
"from": "447700900001",
"channel": "sms",
"message_type": "text",
"text": "This is an SMS sent using the Vonage Messages API."
}
]
}
フェイルオーバー・チャネルは必要な数だけ定義できます。フェイルオーバー・メッセージは、配列で定義された順序で送信されます。
フェイルオーバー・アレイ内の各メッセージは、それ自身の channel, message_type from, to各チャンネルの詳細と必要なパラメータについては、以下のページを参照されたい。 API仕様.また、メッセージの内容が各フォールバック・チャネルの能力に適合していることも確認する必要がある。
cURLとVonage SDKを使用したリクエスト例は フェイルオーバーでメッセージを送る コード・スニペットのページ。
ステータスとコールバックの監視
メッセージが送信されると、APIは次のように返します。 ステータス・コールバック をWebhook URLに追加します。これらは、フェイルオーバーシーケンスの各メッセージの進行状況と結果を追跡します。RCSからSMSへのフェイルオーバーのフロー例は以下のようになる:
- 提出されたRCS → プライマリ・チャネル(この場合はRCS)にメッセージを送信。
- RCS不合格 → メッセージの配信に失敗しました。
- SMS送信 → SMSでフェイルオーバーメッセージを送信。
- SMS配信 → メッセージは正常に配信されました。
コールバックの例
以下のコールバックの例は、RCSメッセージが拒否され、SMSメッセージが配信された場合のステータス更新を示しています。どちらのコールバックにも、以下のフィールドがあります:
workflow.workflow_id- フェイルオーバー・ワークフローの固有 ID。workflow.items_number- 送信されるメッセージの順序を示す(例:プライマリは "1"、最初のフェイルオーバーは "2")。workflow.items_total- このワークフローで試行されたメッセージの総数。status- 配信状態を示す。これらの値はチャネルによって異なりますが、以下のいずれかになります。submitted,delivered,rejected,undeliverableあるいはread.各チャンネルの具体的な情報は API仕様.
RCS不合格
{
"messageuuid": "001",
"to": "447700900000",
"from": "Vonage",
"timestamp": "2024-01-01T14:00:02.000Z",
"status": "rejected",
"channel": "rcs",
"workflow": {
"workflow_id": "3TcNjguHxr2vcCZ9Ddsnq6tw8yQUpZ9rMHv9QXSxLan5ibMxqSzLdx9",
"items_number": "1",
"items_total": "2"
}
}
SMS配信
{
"messageuuid": "002",
"to": "447700900000",
"from": "447700900001",
"timestamp": "2024-01-01T14:00:04.000Z",
"status": "delivered",
"channel": "sms",
"workflow": {
"workflow_id": "3TcNjguHxr2vcCZ9Ddsnq6tw8yQUpZ9rMHv9QXSxLan5ibMxqSzLdx9",
"items_number": "2",
"items_total": "2"
}
}
これらのコールバックを使用して、メッセージがどこでどのように配信されたかを追跡し、次のアクションやログをトリガーします。