Send a Viber Business Message

Key Description
VONAGE_APPLICATION_ID The ID of the Vonage Application that you created.
VIBER_SERVICE_MESSAGE_ID Your Viber Business Message ID.
TO_NUMBER The phone number you are sending the message to.

NOTE: Don't use a leading + or 00 when entering a phone number, start with the country code, for example 447700900000.

Example

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 $'{
    "to": "'${MESSAGES_TO_NUMBER}'",
    "from": "'${VIBER_SENDER_ID}'",
    "channel": "viber_service",
    "message_type": "text",
    "text": "This is an Viber Business Service text message sent using the Vonage Messages API."
  }'

View full source

Run your code

Save this file to your machine and run it:

bash send-text.sh

Prerequisites

npm install @vonage/server-sdk @vonage/messages

Create a file named send-text.js and add the following code:

const { Vonage } = require('@vonage/server-sdk');
const { Channels } = 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} : {}),
  },
);

View full source

Write the code

Add the following to send-text.js:

vonage.messages.send({
  messageType: 'text',
  channel: Channels.VIBER,
  text: 'This is a Viber Service Message text message sent using the Messages API',
  to: MESSAGES_TO_NUMBER,
  from: VIBER_SENDER_ID,
})
  .then(({ messageUUID }) => console.log(messageUUID))
  .catch((error) => console.error(error));

View full source

Run your code

Save this file to your machine and run it:

node send-text.js

Prerequisites

Add the following to build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Create a file named SendViberText and add the following code to the main method:

val client = Vonage {
    applicationId(VONAGE_APPLICATION_ID)
    privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
}

View full source

Write the code

Add the following to the main method of the SendViberText file:

val messageId = client.messages.send(
    viberText {
        to(MESSAGES_TO_NUMBER)
        from(VIBER_SENDER_ID)
        text("This is a Viber text message sent using the Messages API")
    }
)

View full source

Run your code

We can use the application 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.viber with the package containing SendViberText:

gradle run -Pmain=com.vonage.quickstart.kt.messages.viber.SendViberText

Prerequisites

Add the following to build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Create a file named SendViberText and add the following code to the main method:

VonageClient client = VonageClient.builder()
		.applicationId(VONAGE_APPLICATION_ID)
		.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
		.build();

View full source

Write the code

Add the following to the main method of the SendViberText file:

var response = client.getMessagesClient().sendMessage(
		ViberTextRequest.builder()
			.from(VIBER_SENDER_ID).to(MESSAGES_TO_NUMBER)
			.text("Don't miss out on our latest offers!")
			.category(Category.PROMOTION)
			.build()
);
System.out.println("Message sent successfully. ID: "+response.getMessageUuid());

View full source

Run your code

We can use the application 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.viber with the package containing SendViberText:

gradle run -Pmain=com.vonage.quickstart.messages.viber.SendViberText

Prerequisites

Install-Package Vonage

Write the code

Add the following to SendSms.cs:

var credentials = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY_PATH);
var vonageClient = new VonageClient(credentials);
var request = new ViberTextRequest
{
    To = MESSAGES_TO_NUMBER,
    From = VIBER_SENDER_ID,
    Text = "An SMS sent using the Vonage Messages API"
};
var response = await vonageClient.MessagesClient.SendAsync(request);

View full source

Prerequisites

composer require vonage/client

Create a file named send-text.php and add the following code:

$keypair = new \Vonage\Client\Credentials\Keypair(
    file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH),
    VONAGE_APPLICATION_ID
);

$client = new \Vonage\Client($keypair);

View full source

Write the code

Add the following to send-text.php:

$viber = new \Vonage\Messages\Channel\Viber\ViberText(
    TO_NUMBER,
    FROM_NUMBER,
    'This is a text message sent using the Vonage PHP SDK'
);

$client->messages()->send($viber);

View full source

Run your code

Save this file to your machine and run it:

php send-text.php

Prerequisites

pip install vonage python-dotenv

Write the code

Add the following to send-text.py:

from vonage import Auth, Vonage
from vonage_messages import ViberText

client = Vonage(
    Auth(
        application_id=VONAGE_APPLICATION_ID,
        private_key=VONAGE_PRIVATE_KEY,
    )
)

message = ViberText(
    to=MESSAGES_TO_NUMBER,
    from_=VIBER_SENDER_ID,
    text="This is a Viber message sent via the Vonage Messages API.",
)

response = client.messages.send(message)
print(response)

View full source

Run your code

Save this file to your machine and run it:

python messages/viber/send-text.py

Prerequisites

gem install vonage

Create a file named send-text.rb and add the following code:

client = Vonage::Client.new(
  application_id: VONAGE_APPLICATION_ID,
  private_key: VONAGE_PRIVATE_KEY
)

View full source

Write the code

Add the following to send-text.rb:

message = client.messaging.viber(
  type: 'text',
  message: "This is a Viber Business Service text message sent using the Vonage Messages API"
)

client.messaging.send(
  from: VIBER_SENDER_ID,
  to: MESSAGES_TO_NUMBER,
  **message
)

View full source

Run your code

Save this file to your machine and run it:

ruby send-text.rb

TIP: If testing using Curl you will need a JWT. You can see how to create one in the documentation on creating a JWT.

Sending a Viber message

The Messages API provides the ability to send messages to various channels, including Facebook Messenger, SMS, WhatsApp and Viber. This tutorial describes using the Messages API to send a Viber message.

Steps
1
Introduction to this tutorial
2
Prerequisites
3
Send a Viber message
4
What's next?