我在 laravel 中制作了一个用于 WhatsApp webhook 身份验证的控制器,在本地运行它并使用 ngrok 将其与 WhatsApp webhook 连接,它无法连接,它说“无法验证回调 url 或验证令牌”,但是当我部署时它在heroku上工作正常。 是否有任何特殊配置,以便我可以使用 ngrok 在本地连接它?或者有其他解决方案吗?
您需要按照ngrok文档中提供的步骤进行操作, https://ngrok.com/docs/integrations/whatsapp/webhooks,
我不确定您缺少哪一步或有问题,但根据错误“无法验证回调 url 或验证令牌”,您部署的 webhook 代码根据提供的指南无效WhatsApp webhook 文档。
请确保您在配置时在code和webhook验证中设置了相同的验证码!
经历了同样的问题,WhatsApp Cloud API 似乎认为 NgRok 是恶意的,并且不会接受它作为回调 Webhook 端点。
我刚刚成功做到了,我想向其他人解释如何做到这一点。首先,我登录了 ngrok 网站并声明了我的免费域名。在
Edges
选项卡下,您可以启动一条隧道,该隧道会给您一个命令,像往常一样将该命令复制并粘贴到您的 ngrok.exe
中。
完成此操作后,tt 将在您单击
refresh
后在 Web 应用程序中打印您的端点。
通过运行在后端项目中设置您的端点。
api.php:
Route::get('webhook', [WhatsappController::class, 'index']);
WhatsappController.php
public function index(Request $request): string
{
$hubChallenge = $request->input('hub_challenge');
$verifyToken = $request->input('hub_verify_token');
if ($request->input('hub_mode') === 'subscribe' && $verifyToken === env('VERIFY_TOKEN')) {
return $hubChallenge;
} else {
return response('Bad Request', 400);
}
}
在我的
.env
文件中,我创建了一个名为 VERIFY_TOKEN
的变量并为其赋予了一个值。创建端点时,在 verify token
门户的 meta.developer
字段中输入相同的值。
对于
Callback Url
,请使用 ngrok 为您提供的 url(就我而言)/api/webhook
。
完成所有这些步骤后,它应该可以在本地运行。
我是 ngrok 新手。并尝试你的解决方法。当我使用路由调用 url 时,出现 404 错误。
我无法收到您对 API.PHP 和 Whatsappcontroller.PHP 的评论。
我应该在哪里修改相同的内容?
鲁佩什