Webhook de estado de mensajes
En este fragmento de código aprenderá a recibir actualizaciones del estado de los mensajes mediante el webhook de estado de mensajes.
NOTA: Recomendamos utilizar Autenticación basada en JWT ya que esto le permite configurar las URL de los webhooks de recepción y entrega en el a nivel de aplicación. De lo contrario, todas las devoluciones de llamada de sus diferentes aplicaciones se enviarán a su URL de webhook a nivel de Account.
NOTA: La API de Messages admite webhooks firmados para que puedas verificar que una solicitud proviene de Vonage y que su carga útil no ha sido alterada durante el tránsito.
Ejemplo
Asegúrese de que el estado de su mensaje el webhook está activado en el Panel de control. Como mínimo, su controlador debe devolver un código de estado 200 para evitar colas innecesarias de devolución de llamada. Asegúrese de que su servidor webhook está funcionando antes de probar su aplicación de Mensajes.
Requisitos previos
Si no tiene una solicitud, puede crear uno. Asegúrese también de configure sus webhooks.
npm install express body-parserEscriba el código
Añada lo siguiente a message-status.js:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/webhooks/message-status', (req, res) => {
console.log(req.body);
res.status(200).end();
});
app.listen(3000);Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
Si no tiene una solicitud, puede crear uno. Asegúrese también de configure sus webhooks.
Añada lo siguiente a build.gradle:
Escriba el código
Añada lo siguiente al método main del archivo MessageStatusWebhook:
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:
Ejecute el siguiente comando gradle para ejecutar su aplicación, sustituyendo com.vonage.quickstart.kt.messages por el paquete que contiene MessageStatusWebhook:
Requisitos previos
Si no tiene una solicitud, puede crear uno. Asegúrese también de configure sus webhooks.
Añada lo siguiente a build.gradle:
Escriba el código
Añada lo siguiente al método main del archivo MessageStatusWebhook:
Route inboundRoute = (request, response) -> {
MessageStatus messageDetails = MessageStatus.fromJson(request.body());
System.out.println(
"Message ID "+messageDetails.getMessageUuid()+" (status " + messageDetails.getStatus()+
") was sent at "+messageDetails.getTimestamp()+" from " +
messageDetails.getFrom()+" to "+messageDetails.getTo()+" via "+
messageDetails.getChannel()+" using "+messageDetails.getChannel()
);
return "OK";
};
Spark.port(3000);
Spark.post("/webhooks/message-status", inboundRoute);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:
Ejecute el siguiente comando gradle para ejecutar su aplicación, sustituyendo com.vonage.quickstart.messages por el paquete que contiene MessageStatusWebhook:
Requisitos previos
Si no tiene una solicitud, puede crear uno. Asegúrese también de configure sus webhooks.
composer require vonage/clientCrea un archivo llamado message-status.php y añade el siguiente código:
Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
Si no tiene una solicitud, puede crear uno. Asegúrese también de configure sus webhooks.
pip install fastapi[standard]Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
Si no tiene una solicitud, puede crear uno. Asegúrese también de configure sus webhooks.
gem install sintatraEscriba el código
Añada lo siguiente a message-status.rb:
require 'sinatra'
require 'json'
post "/webhooks/messages/status" do
payload = JSON.parse(request.body.read)
puts "Received message status webhook:\n#{payload}\n\n"
status 200
end
set :port, 3000Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Pruébalo
El webhook se invoca ante un cambio de estado de un mensaje saliente enviado desde Vonage. El estado del mensaje también se imprime en la consola.
El formato del estado del mensaje POST se encuentra en Estado del mensaje de la Referencia API.