Skip to main content

Passo a passo para ativar o WebHook dos leads da Meta

  • Configurar o APP para enviar WebHook;
  • Gerar token de página para vincular o APP à página
  • Inscrever APP na página
  • Inscrever página ao APP

1. Configurar o APP para enviar WebHook

Acesse a página https://developers.facebook.com/apps/

  • Vá no detalhe do APP que vai ser responsável por enviar o webhook
  • Acesse o menu WebHook
  • Na tela central, selecione o produto Page
  • Informe a URL de callback e informe um token a ser verificado no processo, esse token deve ser gerado e informado no campo, como por exemplo @T0k3nDe#x3mplo@
  • Clique em Verificar e salvar

Importante

Ao clicar em Verificar e salvar a Meta vai fazer uma chamada do tipo GET no mesmo endpoint do Webhook passando os parâmetros via query params hub.mode, hub.challenge e hub.verify_token. A aplicação deve validar se o token é igual ao informado no passo anterior, se o hub.mode é igual a "subscribe" e responder como text/plain exatamente o valor enviado na no parâmetro hub.challenge.

Exemplo de código:

[HttpGet("{endpoint}")]
public IActionResult CheckWebhook(
[FromQuery(Name = "hub.mode")] string? mode,
[FromQuery(Name = "hub.challenge")] string? challenge,
[FromQuery(Name = "hub.verify_token")] string? verifyToken
)
{
if (!string.Equals(mode, "subscribe", StringComparison.OrdinalIgnoreCase))
{
return BadRequest("Parâmetro 'hub.mode' inválido.");
}

if (string.IsNullOrWhiteSpace(challenge))
{
return BadRequest("Parâmetro 'hub.challenge' ausente.");
}

if (!_webhookService.IsValidVerifyToken(verifyToken))
{
return StatusCode(StatusCodes.Status403Forbidden, "Invalid verify token.");
}

return Content(challenge, "text/plain");
}

Após validado, serão exibidas diversas opções para ativar a assinatura no campo interessado, no caso do lead, a opção que devemos clicar em Assinar (switch azul) é a leadgen. Há uma opção de testar, para isso basta acionar o link Teste ao lado do switch de ativação para que uma modal de teste abra, na modal, basta clicar em enviar para o servidor. Feito isso a aplicação deve receber uma requisição do webhook configurado, confirmando que o passo de configuração do APP foi realizada com sucesso.

2. Criar tokens de usuário e de página para habilitar a vinculação (inscrição) do APP na página

  • Acessar a página https://developers.facebook.com/tools/explorer
  • Logar na conta do facebook, caso ainda não tenha feito
  • Em App da Meta, selecione o APP configurado no passo 1
  • Em Usuário ou Página, selecione Obter token de acesso da Página. Na tela de confirmação/reconexão clique em reconectar, ou caso a página de interesse não esteja aparecendo na listagem, na tela de reconexão clique no link Editar configurações anteriores., para habilitar a nova página que vai ser acionada.
  • Nas Permissões escolha no mínimo a pages_manage_metadata e leads_retrieval, caso seja exigido mais permissões, será informado no retorno das requisições. Então só repetir esse passo escolhendo as demais permissões necessárias/solicitadas. Feito isso clique no botão Generate Access Token e copie o token gerado.
  • Faça uma requisição no endpoint de acordo com o cUrl abaixo:
# Requisição 1
curl --location 'https://graph.facebook.com/v24.0/oauth/access_token?grant_type=fb_exchange_token&client_id={{ClientIdDoApp}}&client_secret={{ClientSecretDoApp}}&fb_exchange_token={{TokenRecemGerado}}'

ClientIdDoApp e ClientSecretDoApp estão na aba Configurações do app/Básico, sendo ClientIdDoApp = ID do Aplicativo e ClientSecretDoApp = Chave Secreta do Aplicativo

  • A resposta vai ser um token de usuário de longa duração, que para fins de exemplo e referência deste tutorial, vamos salvar na variável TokenDeLongaDuracaoDoUsuario. Feito isso, deverá ser chamado outro endpoint para gerar o token de página, usando esse token de longa duração como base, de acordo com o exemplo abaixo:
# Requisição 2
curl --location 'https://graph.facebook.com/v24.0/{{IdDoUsuario}}/accounts?access_token={{TokenDeLongaDuracaoDoUsuario}}'

IdDoUsuario deve ser resgatado através da chamada do endpoint abaixo, adotando a propriedade id retornada:

# Requisição 3
curl --location 'https://graph.facebook.com/v24.0/me?fields=id%2Cname&access_token={{PrimeiroTokenGerado}}'

Sendo o PrimeiroTokenGerado resgatado ao clicar no botão Generate Access Token, na página https://developers.facebook.com/tools/explorer

  • Salve o token gerado na Requisição 2, pois ele será responsável por efetivar as inscrições na página, e para fins deste tutorial, vamos armazenar esse token na variável TokenLongaDuracaoPagina.

Cada página deve ter um token e por consequência, o passo a seguir deve ser executado para cada página.

  • Inscreva o APP na página realizando a chamada do endpoint abaixo:
#Requisição 4
curl --location --request POST 'https://graph.facebook.com/{{CodigoDaPaginaNaMeta}}/subscribed_apps?access_token={{TokenLongaDuracaoPagina}}&subscribed_fields=leadgen'

CodigoDaPaginaNaMeta é o código da página que se encontra no link https://business.facebook.com/ no menu Contas/Páginas. Parâmetro fixo: subscribed_fields=leadgen

3. Vincular CRM da página ao APP

O App deve aparecer na seção CRMs com acesso a leads

Seguindo esses passos, todo o anuncio preenchido pelo cliente para as páginas configuradas na segunda etapa deste tutorial estarão recebendo os eventos via webhook