Send a Text Message
In this code snippet you will see how to send a Viber message using the Messages API.
NOTE: It is important that you read this information about Viber accounts and messaging before trying this code snippet.
For a step-by-step guide to this topic, you can read our tutorial Sending Viber Service messages with the Messages API.
Example
Ensure the following variables are set to your required values using any convenient method:
Key | Description |
---|---|
BASE_URL |
For production use the base URL is https://api.nexmo.com/ . For sandbox testing the base URL is https://messages-sandbox.nexmo.com/ . |
MESSAGES_API_URL |
There are two versions of the API, each with their own endpoints. For production the previous Messages API endpoint was https://api.nexmo.com/v0.1/messages , the new one is https://api.nexmo.com/v1/messages . For sandbox testing the Messages API endpoint is https://messages-sandbox.nexmo.com/v0.1/messages or https://messages-sandbox.nexmo.com/v1/messages , depending on which version you have set in the sandbox dashboard. |
VONAGE_APPLICATION_ID |
The Vonage Application ID. |
VIBER_SERVICE_MESSAGE_ID |
Your Viber Service Message ID. For sandbox testing this is 16273. |
TO_NUMBER |
Replace with the number you are sending to. E.g. 447700900001
|
NOTE: Don't use a leading +
or 00
when entering a phone number, start with the country code, for example, 447700900000.
Prerequisites
Write the code
Add the following to send-text.sh
:
curl -X POST $MESSAGES_API_URL \
-H 'Authorization: Bearer '$JWT\
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d $'{
"message_type": "text",
"text": "Nexmo Verification code: 12345. Valid for 10 minutes.",
"to": "$TO_NUMBER",
"from": "$FROM_NUMBER",
"channel": "viber_service"
}'
Run your code
Save this file to your machine and run it:
bash send-text.sh
Prerequisites
npm install @vonage/server-sdk@beta
Write the code
Add the following to send-text.js
:
const Vonage = require('@vonage/server-sdk')
const vonage = new Vonage({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH
}, {
apiHost: BASE_URL
})
vonage.channel.send(
{ "type": "viber_service_msg", "number": TO_NUMBER },
{ "type": "viber_service_msg", "id": VIBER_SERVICE_MESSAGE_ID },
{
"content": {
"type": "text",
"text": "This is a Viber Service Message text message sent using the Messages API"
}
},
(err, data) => {
if (err) {
console.error(err);
} else {
console.log(data.message_uuid);
}
}
);
Run your code
Save this file to your machine and run it:
node send-text.js
Try it out
When you run the code a Viber message is sent to the destination number.