フェイルオーバーでメッセージを送る
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 Authentication for more information, including how to generate a JWT. |
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 |
Prerequisites
If you do not have an application you can create one. Make sure you also configure your webhooks.
Write the code
Add the following to 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."
}
]
}'Run your code
Save this file to your machine and run it:
Prerequisites
If you do not have an application you can create one. Make sure you also configure your webhooks.
Add the following to build.gradle:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Create a class named SendMessageWithFailover and add the following code to the main method:
val client = Vonage {
applicationId(VONAGE_APPLICATION_ID)
privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
}Write the code
Add the following to the main method of the SendMessageWithFailover class:
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.")
}
)
}
)Run your code
We can use the アプリケーション plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Run the following gradle command to execute your application, replacing com.vonage.quickstart.kt.messages with the package containing SendMessageWithFailover:
Prerequisites
If you do not have an application you can create one. Make sure you also configure your webhooks.
Add the following to build.gradle:
implementation 'com.vonage:server-sdk:9.3.1'Create a class named SendMessageWithFailover and add the following code to the main method:
VonageClient client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();Write the code
Add the following to the main method of the SendMessageWithFailover class:
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);Run your code
We can use the アプリケーション plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Run the following gradle command to execute your application, replacing com.vonage.quickstart.messages with the package containing SendMessageWithFailover:
Prerequisites
If you do not have an application you can create one. Make sure you also configure your webhooks.
Install-Package VonageWrite the code
Add the following to 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);Prerequisites
If you do not have an application you can create one. Make sure you also configure your webhooks.
gem install vonageCreate a file named send-message-with-failover.rb and add the following code:
Run your code
Save this file to your machine and run it:
試してみる
コードを実行すると、宛先番号にRCSメッセージが送信される。そのメッセージが拒否されると、代わりにSMSメッセージが送信される。