diff --git a/messages/send-message-with-failover.js b/messages/send-message-with-failover.js new file mode 100644 index 0000000..7302a0f --- /dev/null +++ b/messages/send-message-with-failover.js @@ -0,0 +1,47 @@ +require('dotenv').config({ path: __dirname + '/../../.env' }); + +const VONAGE_APPLICATION_ID = process.env.VONAGE_APPLICATION_ID; +const VONAGE_PRIVATE_KEY = process.env.VONAGE_PRIVATE_KEY; +const MESSAGES_TO_NUMBER = process.env.MESSAGES_TO_NUMBER; +const RCS_SENDER_ID = process.env.RCS_SENDER_ID; +const SMS_SENDER_ID = process.env.SMS_SENDER_ID; +const MESSAGES_API_URL = process.env.MESSAGES_API_URL; + +const { Vonage } = require('@vonage/server-sdk'); +const { Channels, MessageType } = require('@vonage/messages'); + +/** + * It is best to send messages using JWT instead of basic auth. If you leave out + * apiKey and apiSecret, the messages SDK will send requests using JWT tokens + * + * @link https://developer.vonage.com/en/messages/technical-details#authentication + */ +const vonage = new Vonage( + { + applicationId: VONAGE_APPLICATION_ID, + privateKey: VONAGE_PRIVATE_KEY, + }, + { + ...(MESSAGES_API_URL ? { apiHost: MESSAGES_API_URL } : {}), + }, +); + +vonage.messages.send({ + to: MESSAGES_TO_NUMBER, + from: RCS_SENDER_ID, + channel: Channels.RCS, + messageType: MessageType.TEXT, + text: 'This is an RCS text message sent via the Vonage Messages API.', + failover: [ + { + to: MESSAGES_TO_NUMBER, + from: SMS_SENDER_ID, + channel: Channels.RCS, + messageType: MessageType.TEXT, + text: 'This is an RCS text message sent via the Vonage Messages API.', + + } + ] +}) + .then(({ messageUUID }) => console.log(messageUUID)) + .catch((error) => console.error(error));