Number Insight Avanzado

A partir del 4 de febrero de 2027, Vonage dejará de ofrecer el servicio «Vonage Number Insights». Para garantizar una asistencia ininterrumpida y ofrecer una solución más escalable y preparada para el futuro, le recomendamos que migre a nuestra oferta mejorada: API de información de identidad de Vonage. La API «Vonage Identity Insights» agrupa varios conjuntos de datos relacionados con números de teléfono en una única API flexible, lo que te permite solicitar información en tiempo real sobre un número de teléfono y obtener cualquier combinación de datos —como el formato del número, los detalles del operador, el cambio de tarjeta SIM y la coincidencia de abonados— 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.

La API avanzada de Number Insight proporciona todos los datos de la aplicación API estándar de Number Insight junto con la siguiente información adicional:

  • Si es probable que el número sea válido
  • Si se transfiere el número
  • Si el número está localizable (no disponible en EE.UU.)
  • Si el número es itinerante y, en caso afirmativo, el operador y el país.

Utilice esta información para determinar el riesgo asociado a un número.

Tenga en cuenta que la API avanzada no proporciona más información sobre los teléfonos fijos que la que ofrece la función API estándar de Number Insight. Para obtener información sobre los números de teléfono fijo, utiliza la API estándar.

Este fragmento de código muestra cómo activar una función asíncrono a la API Number Insight. Este es el método que recomienda Vonage. Si lo deseas, puedes utilizar la Number Insight API avanzada de forma sincrónicapero tenga en cuenta que el uso síncrono puede provocar tiempos de espera.

Antes de intentar ejecutar los ejemplos de código, sustituye los marcadores de posición de las variables:

ClaveDescripción
VONAGE_API_KEY

Your Vonage API key (see it on your dashboard).

VONAGE_API_SECRET

Your Vonage API secret (also available on your dashboard).

INSIGHT_NUMBER

The number you want to retrieve insight information for.

Escriba el código

Añada lo siguiente a ni-advanced-async.sh:

curl \
  -u "${VONAGE_API_KEY}:${VONAGE_API_SECRET}" \
  "https://api.nexmo.com/ni/advanced/async/json?number=$INSIGHT_NUMBER&callback=$INSIGHT_CALLBACK_URL"

Ver fuente completa

Ejecute su código

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

sh ni-advanced-async.sh

Requisitos previos

npm install express body-parser

Escriba el código

Añada lo siguiente a ni-advanced-async-client.js:

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

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: true,
}));

const handleInsight = (request, response) => {
  console.log('params', Object.assign(request.query, request.body));
  response.status(204).send();
};

app.post('/webhooks/insight', handleInsight);

app.listen(3000);

Ver fuente completa

Ejecute su código

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

node ni-advanced-async-client.js

Requisitos previos

Añada lo siguiente a build.gradle:

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

Crea un archivo llamado AdvancedInsightAsync 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 AdvancedInsightAsync:

client.numberInsight.advancedAsync(INSIGHT_NUMBER, INSIGHT_CALLBACK_URL)

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.numberinsight por el paquete que contiene AdvancedInsightAsync:

gradle run -Pmain=com.vonage.quickstart.kt.numberinsight.AdvancedInsightAsync

Requisitos previos

Añada lo siguiente a build.gradle:

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

Crea un archivo llamado AdvancedInsightAsync 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 AdvancedInsightAsync:

var response = client.getInsightClient().getAdvancedAsyncNumberInsight(
        AdvancedInsightAsyncRequest.builder()
            .number(INSIGHT_NUMBER)
            .callback(INSIGHT_CALLBACK_URL)
            .build()
);

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.insight por el paquete que contiene AdvancedInsightAsync:

gradle run -Pmain=com.vonage.quickstart.insight.AdvancedInsightAsync

Requisitos previos

Install-Package Vonage

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

using Vonage;
using Vonage.Request;
using Vonage.NumberInsights;

Ver fuente completa

Añada lo siguiente a AdvancedAsync.cs:


var creds = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);

Ver fuente completa

Escriba el código

Añada lo siguiente a AdvancedAsync.cs:


var request = new AdvancedNumberInsightAsynchronousRequest() { Number = INSIGHT_NUMBER, Callback = INSIGHT_CALLBACK_URL };

Ver fuente completa

Requisitos previos

composer require vonage/client

Crea un archivo llamado advanced-async-trigger.php y añade el siguiente código:

$basic  = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);

Ver fuente completa

Escriba el código

Añada lo siguiente a advanced-async-trigger.php:

try {
    $client->insights()->advancedAsync(SEARCH_NUMBER, CALLBACK_WEBHOOK);
    echo "The number will be looked up soon.";
} catch (\Vonage\Client\Exception\Request $e) {
    error_log("Client error: " . $e->getMessage());
    exit(1);
} catch (\Vonage\Client\Exception\Server $e) {
    error_log("Server error: " . $e->getMessage());
    exit(1);
}

Ver fuente completa

Ejecute su código

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

php advanced-async-trigger.php

Requisitos previos

pip install vonage python-dotenv

Escriba el código

Añada lo siguiente a ni-advanced-async-trigger.py:

from vonage import Auth, Vonage
from vonage_number_insight import (AdvancedAsyncInsightRequest,
                                   AdvancedAsyncInsightResponse)

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

insight: AdvancedAsyncInsightResponse = client.number_insight.get_advanced_info_async(
    AdvancedAsyncInsightRequest(number=INSIGHT_NUMBER, callback=INSIGHT_CALLBACK_URL)
)
pprint(insight)

Ver fuente completa

Ejecute su código

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

python number-insight/ni-advanced-async-trigger.py

Requisitos previos

gem install vonage

Crea un archivo llamado ni-advanced-async-client.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 ni-advanced-async-client.rb:

insight = client.number_insight.advanced(
  number: INSIGHT_NUMBER,
  callback: INSIGHT_CALLBACK_URL
)

puts insight.inspect

Ver fuente completa

Ejecute su código

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

ruby ni-advanced-async-client.rb

La API acusa recibo de la solicitud devolviendo la siguiente información al cliente:

{
    "request_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "number": "447700900000",
    "remaining_balance": "10.000000",
    "request_price": "0.03000000",
    "status": 0
}

Cuando los datos están disponibles, se envían al webhook especificado a través de una etiqueta POST solicitud. Véase la Number Insight: Callback asíncrono avanzado Fragmento de código para aprender a programar el controlador de webhooks.