News

Testing Integrations Between Third-party Webhooks and Local Applications

Published
Testing Integrations Between Third-party Webhooks and Local Applications image

It may sound silly, but ever since I started developing web applications I’ve always found it painful to inspect and debug integrations between my app and third-party webhooks. In addition to the hassle of replicating events, I’ve never relied on testing “hypothetical” scenarios.

Related: Inbound Email in Laravel

The tool

The good news is that there is a solution that solves all these problems efficiently. Ngrok is a product created by Alan Shreve. He wrote about the creation of Ngrok and an article on his blog in 2013 where he describes the product as follows:

“Ngrok is a tunneling, reverse proxy that establishes secure tunnels from a public endpoint to a locally running network service while capturing all traffic for inspection and replay. It is an open-source project on GitHub.”

Let’s get started:

Well, now that you know a little bit about the tool and why I found it let’s demonstrate how to expose a local environment to allow third-party services to submit requests to local environments via Webhook is very simple and the two solutions that I’m going to present have been tested and work with the following scenarios :

  • Scenario 1: A PHP project using PHP 7.2.6 Development Server
  • Scenario 2: A Laravel (PHP) project using Laravel Development Server (php artisan serve)
  • Scenario 3: A Laravel (PHP) project using Laravel Homestead

To do this follow the steps:

  1. Access the Ngrok website
  2. Register or Login
  3. Download the client based on your OS
  4. Authenticate the client downloaded following the instructions that appear on the same page you’ve downloaded it.

For the first two scenarios just run the following command.

ngrok http <host>:<port>

ex: ngrok http 127.0.0.0.1:666

For the third scenario (if you are using a domain to access the homestead Ex: homestead.test you must rewrite the host-header. But don’t worry, to achieve it increment the command above to something like)

ngrok http <homestead_host_ip>:<port> -host-header=<homestead_domain>

example: ngrok http 192.168.10.10:80 -host-header=homestead.test

Voilà, now point the URL generated by Ngrok in Webhook that you want to test and enjoy this excellent solution.

Have any questions about Ngrok, how it works and best practices? Check the “How it works” page of the official website. If you are even more NERD and like to read the documentation before you start using it, follow the link to the official documentation.

Credits

This article uses the following sources as a basis:

Renoir dos Reis photo

CTO @ Eskive. In recent years I have been a leader in software development teams and I have been active in development communities where I have participated in several discussions and contributed projects.

Filed in

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Laravel AI SDK and Laravel MCP Security Fixes: Update Now image

Laravel AI SDK and Laravel MCP Security Fixes: Update Now

Read article
Mailbox for Laravel: Preview and Test Rendered Email image

Mailbox for Laravel: Preview and Test Rendered Email

Read article
Count Worker Crashes as Job Exceptions in Laravel 13.34 image

Count Worker Crashes as Job Exceptions in Laravel 13.34

Read article
Elastic Bridge: Eloquent-Style Queries for Elasticsearch and OpenSearch image

Elastic Bridge: Eloquent-Style Queries for Elasticsearch and OpenSearch

Read article
Laravel Release Cycle: Versions, Support Policy, and Dates image

Laravel Release Cycle: Versions, Support Policy, and Dates

Read article
Unlearn.dev goes free for a weekend, October 10 and 11 image

Unlearn.dev goes free for a weekend, October 10 and 11

Read article