API avanzada de Number Insight

A partir del 4 de febrero de 2027, Vonage dejará de ofrecer Vonage Number Insights. Para garantizar un soporte ininterrumpido y ofrecer una solución más escalable y preparada para el futuro, te recomendamos que migres a nuestra oferta mejorada: API de información de identidad de Vonage. La API Vonage Identity Insights consolida varios conjuntos de datos relacionados con números de teléfono en una API única y flexible, lo que te permite solicitar información en tiempo real sobre un número de teléfono y recuperar cualquier combinación de información, como el formato del número, los detalles del operador, SIM Swap y Subscriber Match, en una sola llamada.

Por favor, revise el Guía de transición Number Insightsque ofrece información detallada sobre las diferencias entre las API, los cambios necesarios y las mejores prácticas para una transición sin problemas.

Number Insight API le ofrece información en tiempo real sobre números de teléfono de todo el mundo. Hay tres niveles disponibles: Básico, Estándar y Avanzado.

El nivel Avanzado le proporciona los datos más completos para ayudarle a proteger su organización contra el fraude y el spam. A diferencia de los niveles Básico y Estándar, normalmente se accede a la API Avanzada de forma asíncrona, a través de un webhook.

En este tutorial

En este tutorial se crea un servicio web RESTful en Node.js y Express que acepta un número de teléfono y devuelve información detallada sobre el número cuando está disponible.

Para conseguirlo, sigue los siguientes pasos:

  1. Crear el proyecto - crear una aplicación Node.js/Express.
  2. Instale el vonage paquete - añade funciones de Vonage a tu proyecto.
  3. Exponga su aplicación a Internet - uso ngrok para permitir que Vonage acceda a tu aplicación a través de un webhook.
  4. Crear la aplicación básica - construir la funcionalidad básica.
  5. Crear la solicitud asíncrona - llame a la API avanzada Number Insight.
  6. Crear el webhook - escribir el código que procesa los datos insight entrantes.
  7. Probar la aplicación - véalo en acción

Requisitos previos

Para completar el tutorial, necesitas:

  • A Account de Vonage - para su clave y secreto API
  • ngrok - para que tu servidor web de desarrollo sea accesible a los servidores de Vonage a través de Internet

Crear el proyecto

Crea un directorio para tu aplicación, cd en el directorio y, a continuación, utilice el gestor de paquetes de Node.js npm para crear un package.json para las dependencias de su aplicación:

mkdir myapp cd myapp npm init

Pulse [Intro] para aceptar cada uno de los valores predeterminados.

A continuación, instale el express marco de aplicaciones web y body-parser paquetes:

npm install express body-parser --save

Instale el vonage paquete

Ejecute lo siguiente npm en la ventana de terminal para instalar el SDK de Vonage Node Server:

npm install @vonage/server-sdk

Exponga su aplicación a Internet

Cuando la API Number Insight termina de procesar su solicitud, avisa a su aplicación mediante un mensaje webhook. El webhook proporciona un mecanismo para que los servidores de Vonage se comuniquen con los tuyos.

Para que tu aplicación sea accesible para los servidores de Vonage, debe estar disponible públicamente en Internet. Una forma de lograr esto durante el desarrollo y las pruebas es utilizar ngrokServicio que expone los servidores locales a la Internet pública a través de túneles seguros. Véase esta entrada del blog para más detalles.

Descargar e instalar ngroke inícielo con el siguiente comando:

./ngrok http 5000

Esto crea URLs públicas (HTTP y HTTPS) para cualquier sitio web que se esté ejecutando en el puerto 5000 en su máquina local.

Utiliza el ngrok interfaz web en http://localhost:4040 y anote las URL que ngrok proporciona: los necesitas para completar este tutorial.

Crear la aplicación básica

Crear el index.js en su directorio de aplicaciones con el siguiente código, sustituyendo el archivo VONAGE_API_KEY, VONAGE_API_SECRET y WEBHOOK_URL con sus propios valores:

const app = require('express')();
const bodyParser = require('body-parser');

app.set('port', 5000));
app.use(bodyParser.json());

const VONAGE_API_KEY = // Your Vonage API key
const VONAGE_API_SECRET = // Your Vonage API secret
const WEBHOOK_URL = // e.g. https://bcac78a0.ngrok.io/webhooks/insight

app.get('/insight/:number', function(request, response) {
    console.log("Getting information for " + request.params.number);
}); 

app.listen(app.get('port'), function() {
    console.log('Listening on port', app.get('port'));
});

Pruébelo ejecutando el siguiente comando en el terminal y obteniendo el resultado que se muestra:

node index.js Listening on port 5000

En un navegador, introduzca la siguiente URL, sustituyendo https://bcac78a0.ngrok.io con el nombre del host ngrok suministros:

https://bcac78a0.ngrok.io/insight/123456

Si todo funciona correctamente, Getting information for 123456 en el terminal.

Crear la solicitud asíncrona

Ahora que su aplicación puede recibir un número de teléfono, debe crear la solicitud asíncrona a la API asíncrona de Number Insight.

Primero, escribe el código que crea una instancia de Vonage con los datos de su Account:

const Vonage = require('@vonage/server-sdk');
const vonage = new Vonage({
    apiKey: VONAGE_API_KEY,
    apiSecret: VONAGE_API_SECRET
});

A continuación, amplíe el /insight/:number para llamar a la Number Insight API, introduciendo el número que le interesa y la URL del webhook que se ocupa de la respuesta. El webhook se crea en un paso posterior.

app.get('/insight/:number', function(request, response) {
    console.log("Getting information for " + request.params.number);
    nexmo.numberInsight.get({
        level: 'advancedAsync',
        number: request.params.number,
	callback: WEBHOOK_URL
    }, function (error, result) {
	if (error) {
	    console.error(error);
	} else {
	    console.log(result);
	}
    });
});

La llamada a la API avanzada de Number Insight devuelve una respuesta inmediata que confirma la solicitud antes de que los datos reales estén disponibles. Es esta respuesta la que registramos en la consola:

{ request_id: '3e6e31a4-3efb-49ab-8751-5a43e4de6406', number: '447700900000', remaining_balance: '17.775', request_price: '0.03000000', status: 0 }

En status del cuerpo de la solicitud indica si la operación se ha realizado correctamente. Un valor cero indica éxito y un valor distinto de cero indica fallo, tal y como se describe en la sección Documentación de referencia de la API Number Insight.

Crear el webhook

La API Insight devuelve los resultados a su aplicación a través de un archivo POST por lo que debe definir el campo /webhooks/insight controlador de ruta como app.post()como se muestra:

app.post('/webhooks/insight', function (request, response) {
    console.dir(request.body);
    response.status(204).send();
});

El controlador registra los datos JSON entrantes en la consola y envía un mensaje 204 Respuesta HTTP a los servidores de Vonage.

El código de estado HTTP 204 indica que el servidor ha satisfecho correctamente la solicitud y que no hay contenido adicional que enviar en el cuerpo de la carga útil de respuesta.

Probar la aplicación

Ejecutar index.js:

node index.js

Introduzca una URL con el siguiente formato en la barra de direcciones del navegador, sustituyendo https://bcac78a0.ngrok.io con su ngrok URL y INSIGHT_NUMBER con un número de teléfono de su elección:

http://YOUR_NGROK_HOSTNAME/insight/NUMBER

Tras la respuesta de acuse de recibo inicial, la consola debería mostrar información similar a la que se muestra a continuación:

{ "status": 0, "status_message": "Success", "lookup_outcome": 0, "lookup_outcome_message": "Success", "request_id": "55a7ed8e-ba3f-4730-8b5e-c2e787cbb2b2", "international_format_number": "447700900000", "national_format_number": "07700 900000", "country_code": "GB", "country_code_iso3": "GBR", "country_name": "United Kingdom", "country_prefix": "44", "request_price": "0.03000000", "remaining_balance": "1.97", "current_carrier": { "network_code": "23410", "name": "Telefonica UK Limited", "country": "GB", "network_type": "mobile" }, "original_carrier": { "network_code": "23410", "name": "Telefonica UK Limited", "country": "GB", "network_type": "mobile" }, "valid_number": "valid", "reachable": "reachable", "ported": null, "roaming": "unknown" }

Tenga en cuenta lo siguiente al probar su aplicación:

  • La API Insight Advanced no proporciona ninguna información sobre teléfonos fijos que no esté disponible en la API Standard.
  • Las solicitudes a la API Insight no son gratuitas. Considere la posibilidad de utilizar la ngrok salpicadero para reproducir solicitudes anteriores durante el desarrollo para evitar cargos innecesarios.

Conclusión

En este tutorial, ha creado una aplicación que utiliza la API asíncrona avanzada de Number Insight para devolver datos a un webhook.

El tutorial no cubría algunas de las funciones específicas de la API avanzada, como la coincidencia de direcciones IP, la accesibilidad y el estado de itinerancia. Revise la documentación para aprender a utilizar estas funciones.

¿Y ahora qué?

Los siguientes recursos le ayudarán a utilizar Number Insight en sus aplicaciones: