Ir para o conteúdo

Como receber notificações de endpoint webhook na máquina local#

Para receber notificações, você precisa ter um endereço estático para as solicitações do nosso servidor. Isso pode ser implementado usando o aplicativo ngrok. Ele permite criar um endereço estático temporário e redirecionar as solicitações desse endereço para sua máquina local. Esse mecanismo é útil para depurar seu código.

Instalação#

Acesse o site ngrok, faça o registro e baixe o ngrok.

Instale as dependências para executar o exemplo.

npm i express body-parser   

Importação#

Existem várias maneiras de importar a biblioteca para o projeto

Usando o JavaScript clássico:

const express = require("express");

Usando ES6 javascript:

import express from "express";
Usando typescript:

import * as express from "express";

Como Receber Notificações de Webhook em um Ambiente Local#

Você pode receber notificações de webhook em um ambiente local para testar o funcionamento do seu código. Aqui está um exemplo completo que você pode conferir aqui.

Para executar o exemplo, siga os passos abaixo:

  1. Certifique-se de que você tenha instalado todas as dependências necessárias no seu projeto.
  2. Abra o arquivo SampleReceiveWebhook.js.
  3. Execute o exemplo usando o seguinte comando:
node SampleReceiveWebhook.js  

Executando o Ngrok em um Novo Terminal#

Para receber notificações de webhook em um ambiente local, você precisará usar uma ferramenta como o Ngrok para criar um endereço estático temporário e redirecionar as solicitações para o seu ambiente local. Siga os passos abaixo:

  1. Abra um novo terminal.
  2. Navegue até o diretório onde você instalou o Ngrok.
  3. Execute o seguinte comando para iniciar o Ngrok:
ngrok http 80  

Copiando o Endereço do Ngrok#

Após iniciar o Ngrok, você verá uma linha no terminal com um endereço semelhante ao seguinte:

Forwarding http://32c4-146-158-66-240.ngrok-free.app -> http://localhost:80

Depois de iniciar o Ngrok e obter o endereço temporário, você precisa configurar o webhook local para receber as notificações.

Finalizando o Exemplo#

Para encerrar o exemplo e parar o servidor local que está recebendo as notificações, siga estas etapas:

No terminal em que você executou o exemplo SampleReceiveWebhook.js, pressione Ctrl+C

Isso encerrará a execução do exemplo e o servidor local não estará mais recebendo as notificações de webhook.

Exemplo#

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

(async () => {
  try {

    const app = express();
    const port = 80;

    app.use(bodyParser.json());
    app.post('/', (req, res) => {
      console.log(req.body);
      res.status(200).send('');
    });


    app.listen(port, () => {
      console.log(`Server is listening on port ${port}`);
    });
  } catch (error) {
      console.error(error);
      process.exit(1);
  }
})();

Lista Completa de Exemplos#

Aqui está uma lista de exemplos disponíveis na biblioteca NodeJs WhatsApp: