フェイルオーバーでのメッセージ送信

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へのフェイルオーバーのフロー例は以下のようになる:

  1. 提出されたRCS → プライマリ・チャネル(この場合はRCS)にメッセージを送信。
  2. RCS不合格 → メッセージの配信に失敗しました。
  3. SMS送信 → SMSでフェイルオーバーメッセージを送信。
  4. 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"
  }
}

これらのコールバックを使用して、メッセージがどこでどのように配信されたかを追跡し、次のアクションやログをトリガーします。

さらに読む