Send an image Message
In this code snippet you will see how to send a Viber image 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 |
For production use the Messages API endpoint is https://api.nexmo.com/v0.1/messages . For sandbox testing the Messages API endpoint is https://messages-sandbox.nexmo.com/v0.1/messages . |
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
|
IMAGE_URL |
The link to the image file to send. |
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-image.sh
:
curl -X POST $MESSAGES_API_URL \
-H 'Authorization: Bearer '$JWT\
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d $'{
"from": { "type": "viber_service_msg", "id": "$VIBER_SERVICE_MESSAGE_ID" },
"to": { "type": "viber_service_msg", "number": "$TO_NUMBER" },
"message": {
"content": {
"type": "image",
"image": {
"url": "$IMAGE_URL"
}
}
}
}'
Run your code
Save this file to your machine and run it:
bash send-image.sh
Prerequisites
npm install @vonage/server-sdk@beta
Write the code
Add the following to send-image.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: 'image',
image: {
url: IMAGE_URL,
},
},
},
(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-image.js
Try it out
When you run the code a Viber image message is sent to the destination number.