Primeros pasos con la SMS API de Vonage

El Servicio de Mensajes Cortos (SMS) es un servicio de mensajería de texto que utiliza protocolos de comunicación estandarizados para enviar mensajes cortos de texto a o entre dispositivos. Estos mensajes se transmiten a través de redes celulares.

Las API de comunicaciones, como Messages API de Vonage, te permiten enviar mensajes SMS mediante programación haciendo una solicitud HTTP a un punto final de API. Luego, el mensaje se transmite a la red celular para su entrega al dispositivo del destinatario.

La Messages API y la SMS API

Actualmente hay dos SMS API de Vonage con las que puedes enviar mensajes SMS:

Existen algunas diferencias entre las dos API que puede tener en cuenta a la hora de decidir cuál utilizar.

Messages API

  • Messages API es una API de mensajería multicanal que admite otros canales de mensajería además de SMS
  • Esto incluye otros canales basados en la red como MMS y RCS, así como canales OTT como WhatsApp y Facebook Messenger.
  • Todos los canales utilizan el mismo punto final y la misma estructura básica para las cargas útiles de las solicitudes, por lo que se pueden utilizar varios canales a través de una única integración
  • La Messages API seguirá mejorándose con nuevas funciones y compatibilidad con canales de red y OTT.
  • La API Messages proporciona un webhook de estado de mensajes que admite los siguientes estados:
    • submitted
    • delivered
    • rejected
    • undeliverable

SMS API (heredado)

  • La SMS API proporciona Recibos de entrega para segmentos de mensajes individuales (cuando un mensaje extenso se ha dividido en varias partes para su envío).
  • La SMS API Recibos de entrega admiten los siguientes estados:
    • accepted
    • delivered
    • buffered
    • expired
    • failed
    • rejected
    • unknown

Los clientes que envíen SMS en EE. UU. utilizando números de teléfono geográficos de 10 dígitos deberán cumplir las 10 directrices normativas del DLC. Consulte nuestra 10. Documentación del DLC Para más información.

Enviar un SMS

Este ejemplo te muestra cómo enviar un SMS al número que elijas.

Este ejemplo es específico para la API de SMS

Primero, inscríbete en una Account de Vonage si aún no tienes una, y anota tu clave API y tu clave secreta en el Página de introducción al panel de control.

Sustituye los siguientes valores de marcador de posición en el código de ejemplo:

Clave Descripción
VONAGE_API_KEY Tu clave API de Vonage.
VONAGE_API_SECRET Tu clave secreta de la API de Vonage.

Escriba el código

Añada lo siguiente a send-sms.sh:

curl -X POST https://rest.nexmo.com/sms/json \
  -u "$VONAGE_API_KEY:$VONAGE_API_SECRET" \
  -d "from=${SMS_SENDER_ID}" \
  -d "to=${SMS_TO_NUMBER}" \
  -d 'text=A text message sent using the Vonage SMS API'

Ver fuente completa

Ejecute su código

Guarde este archivo en su máquina y ejecútelo:

sh send-sms.sh

Requisitos previos

npm install @vonage/server-sdk

Crea un archivo llamado send.js y añade el siguiente código:

const { Vonage } = require('@vonage/server-sdk');

const vonage = new Vonage({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET,
});

Ver fuente completa

Escriba el código

Añada lo siguiente a send.js:

vonage.sms.send({
  to: SMS_TO_NUMBER,
  from: SMS_SENDER_ID,
  text: 'A text message sent using the Vonage SMS API',
})
  .then((resp) => {
    console.log('Message sent successfully');
    console.log(resp);
  })
  .catch((err) => {
    console.log('There was an error sending the messages.');
    console.error(err);
  });

Ver fuente completa

Ejecute su código

Guarde este archivo en su máquina y ejecútelo:

node send.js

Requisitos previos

Añada lo siguiente a build.gradle:

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

Crea un archivo llamado SendMessage y añade el siguiente código al método main:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

Ver fuente completa

Escriba el código

Añada lo siguiente al método main del archivo SendMessage:

val response = client.sms.sendText(
    from = SMS_SENDER_ID,
    to = SMS_TO_NUMBER,
    message = "Hello from Vonage SMS API"
)

println(
    if (response.wasSuccessfullySent())
        "Message sent successfully."
    else
        "Message failed with error: ${response[0].errorText}"
)

Ver fuente completa

Ejecute su código

Podemos utilizar el plugin aplicación para Gradle para simplificar la ejecución de nuestra aplicación. Actualiza tu build.gradle con lo siguiente:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Ejecute el siguiente comando gradle para ejecutar su aplicación, sustituyendo com.vonage.quickstart.kt.sms por el paquete que contiene SendMessage:

gradle run -Pmain=com.vonage.quickstart.kt.sms.SendMessage

Requisitos previos

Añada lo siguiente a build.gradle:

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

Crea un archivo llamado SendMessage y añade el siguiente código al método main:

VonageClient client = VonageClient.builder().apiKey(VONAGE_API_KEY).apiSecret(VONAGE_API_SECRET).build();

Ver fuente completa

Escriba el código

Añada lo siguiente al método main del archivo SendMessage:

TextMessage message = new TextMessage(
        SMS_SENDER_ID, SMS_TO_NUMBER,
        "A text message sent using the Vonage SMS API"
);

SmsSubmissionResponse response = client.getSmsClient().submitMessage(message);

if (response.getMessages().get(0).getStatus() == MessageStatus.OK) {
    System.out.println("Message sent successfully.");
} else {
    System.out.println("Message failed with error: " + response.getMessages().get(0).getErrorText());
}

Ver fuente completa

Ejecute su código

Podemos utilizar el plugin aplicación para Gradle para simplificar la ejecución de nuestra aplicación. Actualiza tu build.gradle con lo siguiente:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Ejecute el siguiente comando gradle para ejecutar su aplicación, sustituyendo com.vonage.quickstart.sms por el paquete que contiene SendMessage:

gradle run -Pmain=com.vonage.quickstart.sms.SendMessage

Requisitos previos

Install-Package Vonage

Crea un archivo llamado SendSms.cs y añade el siguiente código:

using Vonage;
using Vonage.Request;

Ver fuente completa

Añada lo siguiente a SendSms.cs:

var credentials = Credentials.FromApiKeyAndSecret(
    vonageApiKey,
    vonageApiSecret
    );

var vonageClient = new VonageClient(credentials);

Ver fuente completa

Escriba el código

Añada lo siguiente a SendSms.cs:

var response = await vonageClient.SmsClient.SendAnSmsAsync(new Vonage.Messaging.SendSmsRequest()
{
    To = SMS_TO_NUMBER,
    From = SMS_SENDER_ID,
    Text = "A text message sent using the Vonage SMS API"
});
Console.WriteLine(response.Messages[0].To);

Ver fuente completa

Requisitos previos

composer require vonage/client

Crea un archivo llamado send-sms.php y añade el siguiente código:

$keypair = new \Vonage\Client\Credentials\Keypair(VONAGE_PRIVATE_KEY, VONAGE_APPLICATION_ID);
$client = new \Vonage\Client($keypair);

Ver fuente completa

Escriba el código

Añada lo siguiente a send-sms.php:

$response = $client->sms()->send(
    new \Vonage\SMS\Message\SMS(TO_NUMBER, BRAND_NAME, 'A text message sent using the Vonage SMS API')
);

$message = $response->current();

if ($message->getStatus() == 0) {
    echo "The message was sent successfully\n";
} else {
    echo "The message failed with status: " . $message->getStatus() . "\n";
}

Ver fuente completa

Ejecute su código

Guarde este archivo en su máquina y ejecútelo:

php send-sms.php

Requisitos previos

pip install vonage python-dotenv

Escriba el código

Añada lo siguiente a send-an-sms.py:

from vonage import Auth, Vonage
from vonage_sms import SmsMessage, SmsResponse

client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))

message = SmsMessage(
    to=SMS_TO_NUMBER,
    from_=SMS_SENDER_ID,
    text="A text message sent using the Vonage SMS API.",
)

response: SmsResponse = client.sms.send(message)
print(response)

Ver fuente completa

Ejecute su código

Guarde este archivo en su máquina y ejecútelo:

python sms/send-an-sms.py

Requisitos previos

gem install vonage

Crea un archivo llamado send.rb y añade el siguiente código:

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

Ver fuente completa

Escriba el código

Añada lo siguiente a send.rb:

client.sms.send(
  from: SMS_SENDER_ID,
  to: SMS_TO_NUMBER,
  text: 'A text message sent using the Vonage SMS API'
)

Ver fuente completa

Ejecute su código

Guarde este archivo en su máquina y ejecútelo:

ruby send.rb

Solución de problemas

Si tienes problemas al realizar llamadas a la API, asegúrate de comprobar el valor devuelto campo de estado para casos concretos códigos de error.

Importante: Si usted es un cliente de EE.UU. que utiliza la SMS API para enviar tráfico desde un código de país +1 de 10 dígitos largos (10 DLC) a redes de EE.UU., debe registrar una marca y una campaña para que se apruebe el envío. Una vez aprobada, debes vincular un número a la campaña. Consulte la 10. Sección de compatibilidad con DLC.

Conceptos de SMS API de Vonage

Antes de usar la SMS API de Vonage, familiarízate con lo siguiente:

  • Formato de los Numbers - La SMS API requiere que los números de teléfono estén en formato E.164.

  • Autenticación - La SMS API se autentica utilizando la clave y el secreto de la API de tu Account.

  • Webhooks - La SMS API realiza solicitudes HTTP al servidor web de tu aplicación para que puedas actuar en consecuencia. Por ejemplo: SMS entrantes y recibos de entrega.

Referencia