API Avançada do Number Insight

A partir de 4 de fevereiro de 2027, a Vonage encerrará o serviço Vonage Number Insights. Para garantir um suporte ininterrupto e oferecer uma solução mais escalável e preparada para o futuro, recomendamos que você migre para nossa oferta aprimorada: API do Vonage Identity Insights. A Number Insight API consolida vários conjuntos de dados relacionados a números de telefone em uma única API flexível, permitindo que você solicite informações em tempo real sobre um número de telefone e obtenha qualquer combinação de informações — como formatação do número, detalhes da operadora, troca de SIM e correspondência de assinante — em uma única chamada.

Por favor, verifique o Guia de Transição do Numbers Insights, que oferece orientações detalhadas sobre as diferenças nas APIs, as alterações necessárias e as melhores práticas para uma transição tranquila.

A Number Insight API fornece informações em tempo real sobre números de telefone em todo o mundo. Há três níveis disponíveis: Básico, Padrão e Avançado.

O nível Avançado oferece os dados mais abrangentes para ajudar a proteger sua organização contra fraudes e spam. Ao contrário dos níveis Básico e Padrão, normalmente você acessa a API Avançada de forma assíncrona, por meio de um webhook.

Neste tutorial

Neste tutorial, você criará um serviço web RESTful em Node.js e Express que aceita um número de telefone e retorna informações detalhadas sobre o número assim que elas estiverem disponíveis.

Para isso, siga as etapas a seguir:

  1. Criar o projeto - criar um aplicativo Node.js/Express.
  2. Instale o vonage pacote - adicione os recursos da Vonage ao seu projeto.
  3. Torne seu aplicativo acessível pela Internet - uso ngrok para permitir que a Vonage acesse seu aplicativo por meio de um webhook.
  4. Criar o aplicativo básico - desenvolver a funcionalidade básica.
  5. Criar a solicitação assíncrona - chamar a Number Insight API Advanced.
  6. Criar o webhook - escreva o código que processa os dados de insights recebidos.
  7. Teste o aplicativo - veja como funciona!

Pré-requisitos

Para concluir o tutorial, você precisa de:

  • A Account da Vonage - para sua chave e seu segredo da API
  • ngrok - para tornar seu servidor web de desenvolvimento acessível aos servidores da Vonage pela Internet

Criar o projeto

Crie uma pasta para o seu aplicativo, cd na pasta e, em seguida, use o gerenciador de pacotes do Node.js npm para criar um package.json arquivo com as dependências do seu aplicativo:

mkdir myapp cd myapp npm init

Pressione [Enter] para aceitar cada uma das configurações padrão.

Em seguida, instale o expresso estrutura de aplicativos web e analisador de corpo pacotes:

npm install express body-parser --save

Instale o vonage pacote

Execute o seguinte npm comando na janela do terminal para instalar o SDK do Vonage Node Server:

npm install @vonage/server-sdk

Torne seu aplicativo acessível pela Internet

Quando a Number Insight API concluir o processamento da sua solicitação, ela avisa seu aplicativo por meio de um webhook. O webhook oferece um mecanismo para que os servidores da Vonage se comuniquem com os seus.

Para que seu aplicativo seja acessível aos servidores da Vonage, ele deve estar disponível publicamente na Internet. Uma maneira de fazer isso durante o desenvolvimento e os testes é usar ngrok, um serviço que expõe servidores locais à Internet pública por meio de túneis seguros. Veja esta postagem no blog para mais detalhes.

Baixe e instale ngrok, em seguida, inicie-o com o seguinte comando:

./ngrok http 5000

Isso cria URLs públicas (HTTP e HTTPS) para qualquer site que esteja em execução na porta 5000 no seu computador local.

Use o ngrok interface web em http://localhost:4040 e anote os URLs que ngrok prevê: você precisa deles para concluir este tutorial.

Criar o aplicativo básico

Crie o index.js arquivo no diretório do seu aplicativo com o seguinte código, substituindo o VONAGE_API_KEY, VONAGE_API_SECRET e WEBHOOK_URL constantes com seus próprios 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'));
});

Teste isso executando o comando a seguir no terminal e verificando se o resultado exibido é o esperado:

node index.js Listening on port 5000

Em um navegador, digite a seguinte URL, substituindo https://bcac78a0.ngrok.io com o nome do host ngrok materiais:

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

Se tudo estiver funcionando corretamente, Getting information for 123456 é exibido no terminal.

Criar a solicitação assíncrona

Agora que seu aplicativo já pode receber um número de telefone, você precisa criar a solicitação assíncrona para a Number Insight API.

Primeiro, escreva o código que cria uma instância de Vonage com os dados da sua conta:

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

Em seguida, estenda o /insight/:number caminho para chamar a Number Insight API, passando o número de seu interesse e a URL do webhook que processa a resposta. Você criará o webhook em uma etapa 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);
	}
    });
});

A chamada à Number Insight API retorna uma resposta imediata que confirma a solicitação antes que os dados reais da análise estejam disponíveis. É essa resposta que estamos registrando no console:

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

O status O campo no corpo da solicitação indica se a operação foi bem-sucedida. Um valor igual a zero indica sucesso, enquanto um valor diferente de zero indica falha, conforme descrito no Documentação de referência da Number Insight API.

Criar o webhook

A API do Insight retorna os resultados ao seu aplicativo por meio de um POST solicitação; portanto, você deve definir o /webhooks/insight manipulador de rota como app.post(), conforme mostrado:

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

O manipulador registra os dados JSON recebidos no console e envia um 204 Resposta HTTP aos servidores da Vonage.

O código de status HTTP 204 indica que o servidor atendeu à solicitação com sucesso e que não há conteúdo adicional a ser enviado no corpo da resposta.

Teste o aplicativo

Correr index.js:

node index.js

Digite uma URL no formato a seguir na barra de endereços do navegador, substituindo https://bcac78a0.ngrok.io com o seu ngrok URL e INSIGHT_NUMBER com um número de telefone de sua escolha:

http://YOUR_NGROK_HOSTNAME/insight/NUMBER

Após a resposta inicial de confirmação, o console deve exibir informações semelhantes às mostradas a seguir:

{ "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" }

Leve em consideração o seguinte ao testar seu aplicativo:

  • A API Insight Advanced não fornece nenhuma informação sobre linhas fixas que não esteja disponível na API Standard.
  • As chamadas à API do Insight não são gratuitas. Considere usar o ngrok painel para reproduzir solicitações anteriores durante o desenvolvimento, a fim de evitar cobranças desnecessárias.

Conclusão

Neste tutorial, você criou um aplicativo que utiliza a Number Insight API Advanced Async para enviar dados a um webhook.

O tutorial não abordou alguns dos recursos específicos da API Avançada, como correspondência de endereços IP, acessibilidade e status de roaming. Consulte o documentação para aprender a usar esses recursos.

E agora, para onde vamos?

Os recursos a seguir vão ajudá-lo a usar o Number Insight em suas Applications: