Teste Webhooks de Forma Simples Sem Deploy Usando Serveo.net 🚀

Fala, pessoal! Tudo certo? 😎

Já passaram pela situação de precisar testar um webhook de forma online, mas sem querer ter que fazer o deploy só pra isso? Pois é, eu também! E hoje vou compartilhar uma dica rápida pra resolver esse problema de maneira simples e eficiente. 💡

Como surgiu a necessidade? Recentemente, estava trabalhando em um software que precisava se comunicar com a aplicação da Meta (Facebook). Para configurar um webhook lá, além de estar online, a URL precisa ter SSL (ou seja, HTTPS). O problema? Eu não queria passar pela dor de cabeça de fazer deploy de algo só para isso, muito menos configurar SSL no servidor apenas para testes. 😅

A solução 💡 Depois de quebrar um pouco a cabeça, encontrei uma solução bem prática (e já pronta!). Ela permite fazer o bind da porta da sua máquina local com uma porta de um servidor com SSL ativo, gerando uma URL pública pronta para uso. O serviço é o serveo.net, e com ele, basta rodar o seguinte comando: ssh -R 80:localhost:3000 serveo.net

Isso já te dá um endpoint online acessível para seus testes! 🚀

Considerações finais Espero que essa dica te ajude em seus próximos projetos. Se tiverem qualquer dúvida ou sugestão, fiquem à vontade para comentar. 😉

Eu uso o ngrok para fazer isso, são soluções ótimas.

Gosto bastante de usar o ngrok para esse tipo de solução também! Inclusive, cheguei a testá-lo nesse caso, mas devido a um problema que não me recordo agora, acabei precisando buscar outra alternativa.

Além do serveo.net, há o localhost.run para criar um endpoint para testes. Abaixo está a saída da aplicação após ser executada na linha de comando.

O plano "sem conta" tem a desvantagem do link ser redefinido de tempos em tempos.

$ ssh -R 80:localhost:8080 nokey@localhost.run

===============================================================================
Welcome to localhost.run!

Follow your favourite reverse tunnel at [https://twitter.com/localhost_run].

To set up and manage custom domains go to https://admin.localhost.run/

More details on custom domains (and how to enable subdomains of your custom
domain) at https://localhost.run/docs/custom-domains

If you get a permission denied error check the faq for how to connect with a key or
create a free tunnel without a key at [http://localhost:3000/docs/faq#generating-an-ssh-key].

To explore using localhost.run visit the documentation site:
https://localhost.run/docs/

===============================================================================

** your connection id is fca701cb-9b22-41fb-a512-a035921f521a, please mention it if you send me a message about an issue. **

authenticated as anonymous user
5b2abc6878c129.lhr.life tunneled with tls termination, https://5b2abc6878c129.lhr.life
create an account and add your key for a longer lasting domain name. see https://localhost.run/docs/forever-free/ for more information.
Open your tunnel address on your mobile with this QR:

<qr-code supressed>

5b2abc6878c129.lhr.life tunneled with tls termination, https://5b2abc6878c129.lhr.life
create an account and add your key for a longer lasting domain name. see https://localhost.run/docs/forever-free/ for more information.

Eu não conhecia essa ferramenta ainda, mas realmente parece bastante semelhante. Vou testá-la futuramente.

eu ja usei o webhook.site pra fazer testes em api de pagamento.

Acredito que o `webhook.site` seja uma solução semelhante ao `webhook.cool`, ambos fornecem um webhook para o recebimento de eventos de forma prática. Já utilizei bastante em casos onde o objetivo é apenas receber informações, e de fato é uma ferramenta muito útil. No entanto, neste caso específico, o webhook precisa retornar uma resposta específica para garantir ao Meta que a mensagem foi devidamente processada. Por isso, é necessário que o controle esteja em uma aplicação própria!

gostei da solução, eu tava usando ngrok porem agora ele fica mostrando um warning kkkkk ai precisa clicar em confio ou algo assim pra permitir avançar o que bao funciona no webhook

acho que quando tive que buscar uma alternativa ao ngrok, foi pelo mesmo motivo hahaha

Esse tipo de solução é uma verdadeira mão na roda, principalmente quando voce precisar implementar e testar integrações externas.

Realmente, pode não ser a solução mais estável, mas já ajuda!