Whatsapp webhook 无法与 ngrok 连接

问题描述 投票:0回答:5

我在 laravel 中制作了一个用于 WhatsApp webhook 身份验证的控制器,在本地运行它并使用 ngrok 将其与 WhatsApp webhook 连接,它无法连接,它说“无法验证回调 url 或验证令牌”,但是当我部署时它在heroku上工作正常。 是否有任何特殊配置,以便我可以使用 ngrok 在本地连接它?或者有其他解决方案吗?

laravel webhooks ngrok whatsapi
5个回答
1
投票

您需要按照ngrok文档中提供的步骤进行操作, https://ngrok.com/docs/integrations/whatsapp/webhooks

我不确定您缺少哪一步或有问题,但根据错误“无法验证回调 url 或验证令牌”,您部署的 webhook 代码根据提供的指南无效WhatsApp webhook 文档

请确保您在配置时在code和webhook验证中设置了相同的验证码!


1
投票

经历了同样的问题,WhatsApp Cloud API 似乎认为 NgRok 是恶意的,并且不会接受它作为回调 Webhook 端点。


1
投票

根据 ngrok docs,您需要拥有专业版或企业版许可证才能进行验证。 Cloudflare 隧道是任何可能需要它的人(至少在撰写本文时)的免费替代解决方案。只需阅读 docs 或者您可以观看此 video(CLI 版本)或 video(仪表板版本)来帮助您进行设置。不过,您需要有一个域名。


0
投票

我刚刚成功做到了,我想向其他人解释如何做到这一点。首先,我登录了 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

完成所有这些步骤后,它应该可以在本地运行。


0
投票

我是 ngrok 新手。并尝试你的解决方法。当我使用路由调用 url 时,出现 404 错误。

我无法收到您对 API.PHP 和 Whatsappcontroller.PHP 的评论。

我应该在哪里修改相同的内容?

鲁佩什

© www.soinside.com 2019 - 2024. All rights reserved.