测试第三方 Webhook 与本地应用程序之间的集成

发布日期:作者:

Testing Integrations Between Third-party Webhooks and Local Applications image

这听起来可能很愚蠢,但自从我开始开发 Web 应用程序以来,我一直发现检查和调试我的应用程序与第三方 Webhook 之间的集成很痛苦。除了复制事件的麻烦之外,我从未依赖于测试“假设”场景。

相关:Laravel 中的入站电子邮件

工具

好消息是,有一个解决方案可以有效地解决所有这些问题。 Ngrok 是由 Alan Shreve 创建的产品。他在 2013 年写了一篇关于 Ngrok 的创建以及一篇 关于他博客上的文章,他在文章中将该产品描述如下:

“Ngrok 是一种隧道、反向代理,它从公共端点到本地运行的网络服务建立安全隧道,同时捕获所有流量以供检查和回放。这是一个在 GitHub 上的开源项目。”

让我们开始吧

现在您已经了解了一些关于该工具的信息以及为什么我发现它很有用,让我们演示一下如何公开本地环境以允许第三方服务通过 Webhook 向本地环境提交请求,这非常简单,我将要介绍的两种解决方案已通过测试,并适用于以下场景:

  • 场景 1:使用 PHP 7.2.6 开发服务器的 PHP 项目
  • 场景 2:使用 Laravel 开发服务器(php artisan serve)的 Laravel(PHP)项目
  • 场景 3:使用 Laravel Homestead 的 Laravel(PHP)项目

要做到这一点,请按照以下步骤操作:

  1. 访问 Ngrok 网站
  2. 注册或登录
  3. 根据您的操作系统下载客户端
  4. 按照您下载客户端的页面上显示的说明,对下载的客户端进行身份验证。

对于前两种场景,只需运行以下命令。

ngrok http <主机>:<端口>

例如:ngrok http 127.0.0.0.1:666

对于第三种场景(如果您使用域名访问 Homestead,例如:homestead.test,您必须重写 host-header。但不用担心,要实现它,请将上面的命令增加为类似以下内容):

ngrok http <homestead_host_ip>:<端口> -host-header=<homestead_domain>

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

瞧,现在将 Ngrok 生成的 URL 指向您要测试的 Webhook,并享受这个极佳的解决方案。

您对 Ngrok、它的工作原理和最佳实践有任何疑问吗?查看 官方网站 的“工作原理”页面。如果您更喜欢在开始使用之前阅读文档,请访问 官方文档 的链接。

致谢

本文以以下资料为基础:

Renoir dos Reis photo

Eskive 的首席技术官。近年来,我一直在软件开发团队中担任领导者,并且一直活跃在开发社区中,在那里我参加了多次讨论并贡献了项目。

归档于
Cube

Laravel 新闻通讯

加入 40,000 多名其他开发者,不错过任何新的提示、教程等等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成功能和对本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

绝不妥协

Joel 和 Aaron,来自“绝不妥协”播客的两名经验丰富的开发者,现可为您的 Laravel 项目提供服务。 ⬧ 7,500 美元/月的固定费用。 ⬧ 无需冗长的销售流程。 ⬧ 无需签订合同。 ⬧ 100% 退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保您的 Web 应用程序取得成功。

Kirschbaum
Shift logo

Shift

运行旧版 Laravel?即时、自动化的 Laravel 升级和代码现代化,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

让您的项目充满活力,只需 2,500 美元/月,您就可以拥有 4-6 年经验的经验丰富的 Laravel 开发人员。获得 160 小时的专业知识和 15 天无风险试用。立即预约电话!

Bacancy
Lucky Media logo

Lucky Media

立即获得幸运 - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。一个开源包,将现代无头电子商务功能的力量带到 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 招聘平台

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一个 Laravel SaaS 启动工具包,包含运行现代 SaaS 所需的所有功能。支付、漂亮的结账、管理面板、用户仪表板、身份验证、现成的组件、统计信息、博客、文档等等。

SaaSykit:Laravel SaaS 启动工具包
Rector logo

Rector

您无缝 Laravel 升级的合作伙伴,降低成本,加速创新,帮助公司取得成功

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务性、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到您的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包将评论添加到您的 Laravel 应用程序

阅读文章