フェイルオーバーでメッセージを送る
Vonage Messages API で送信されたメッセージが拒否された場合、その代わりにフェイルオーバー・メッセージを定義することができます。フェイルオーバーは、どのチャネルやメッセージ・タイプから他のチャネルやメッセージ・タイプへも行うことができますが、以下の例ではRCSからSMSへのフェイルオーバーを示しています。
例
各コード・スニペットで使用されているすべての変数の説明を以下に示します:
| キー | 説明 |
|---|---|
VONAGE_APPLICATION_ID | The Vonage Application ID. |
VONAGE_PRIVATE_KEY_PATH | Private key path. |
TO_NUMBER | The number you are sending the to in E.164 format. For example |
RCS_SENDER_ID | The sender ID for the RCS message. |
JWT | Used to authenticate your request. See |
SMS_SENDER_ID | The alphanumeric string that represents the name or number of the organization sending the message. |
MESSAGES_API_URL | There are two versions of the API, each with their own endpoints. For production the previous Messages API endpoint was |
コードを書く
send-message-with-failover.sh に以下を追加する:
curl -X POST "${MESSAGES_API_URL}" \
-H "Authorization: Bearer "$JWT\
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d $'{
"to": "'${MESSAGES_TO_NUMBER}'",
"from": "'${RCS_SENDER_ID}'",
"channel": "rcs",
"message_type": "text",
"text": "This is an RCS text message sent via the Vonage Messages API",
"failover": [
{
"to": "'${MESSAGES_TO_NUMBER}'",
"from": "'${SMS_SENDER_ID}'",
"channel": "sms",
"message_type": "text",
"text": "This is an SMS sent using the Vonage Messages API."
}
]
}'コードを実行する
このファイルをあなたのマシンに保存し、実行する:
前提条件
コードを書く
SendMessageWithFailover ファイルのmain メソッドに以下を追加する:
val messageId = client.messages.send(
rcsText {
to(MESSAGES_TO_NUMBER)
from(RCS_SENDER_ID)
text("This is an RCS text message sent using the Messages API")
failover(
smsText {
to(MESSAGES_TO_NUMBER)
from(SMS_SENDER_ID)
text("This is an SMS sent using the Vonage Messages API.")
}
)
}
)コードを実行する
Gradle用のアプリケーション プラグインを使うことで、アプリケーションの実行を簡単にすることができます。build.gradle を以下のように更新する:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''以下のgradle コマンドを実行し、com.vonage.quickstart.kt.messages をSendMessageWithFailover を含むパッケージに置き換えてアプリケーションを実行する:
前提条件
build.gradle に以下を追加する:
implementation 'com.vonage:server-sdk:9.3.1'SendMessageWithFailover という名前のファイルを作成し、main メソッドに以下のコードを追加する:
VonageClient client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();コードを書く
SendMessageWithFailover ファイルのmain メソッドに以下を追加する:
var response = client.getMessagesClient().sendMessage(
RcsTextRequest.builder()
.from(RCS_SENDER_ID).to(MESSAGES_TO_NUMBER)
.text("This is an RCS message sent via the Vonage Messages API")
.failover(SmsTextRequest.builder()
.from(SMS_SENDER_ID).to(MESSAGES_TO_NUMBER)
.text("This is an SMS sent using the Vonage Messages API.")
.build()
)
.build()
);
System.out.println(response);コードを実行する
Gradle用のアプリケーション プラグインを使うことで、アプリケーションの実行を簡単にすることができます。build.gradle を以下のように更新する:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''以下のgradle コマンドを実行し、com.vonage.quickstart.messages をSendMessageWithFailover を含むパッケージに置き換えてアプリケーションを実行する:
コードを書く
SendMessageWithFailover.cs に以下を追加する:
var credentials = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY_PATH);
var vonageClient = new VonageClient(credentials);
var request = new RcsTextRequest
{
To = MESSAGES_TO_NUMBER,
From = RCS_SENDER_ID,
Text = "This is an RCS text message sent via the Vonage Messages API",
Failover = new List<IMessage>
{
new SmsRequest
{
To = MESSAGES_TO_NUMBER,
From = SMS_SENDER_ID,
Text = "This is an SMS text message sent via the Vonage Messages API"
}
}
};
var response = await vonageClient.MessagesClient.SendAsync(request);前提条件
コードを書く
send-message-with-failover.rb に以下を追加する:
rcs_message = client.messaging.rcs(
to: MESSAGES_TO_NUMBER,
from: RCS_SENDER_ID,
type: 'text',
message: 'This is an RCS text message sent via the Vonage Messages API'
)
sms_message = client.messaging.sms(
to: MESSAGES_TO_NUMBER,
from: SMS_SENDER_ID,
message: 'This is a failover SMS message in case the RCS message is rejected.'
)
client.messaging.send(
**rcs_message,
failover: [sms_message]
)コードを実行する
このファイルをあなたのマシンに保存し、実行する:
試してみる
コードを実行すると、宛先番号にRCSメッセージが送信される。そのメッセージが拒否されると、代わりにSMSメッセージが送信される。