我已经玩了一周了,似乎找不到解决方案。 Whatsapp Business API 已在 Live 中设置并 100% 运行。我已经验证了我的 Webhook,但自验证以来无法看到任何数据进入 webhook 文件。 已尝试使用许多代码变体来获取数据,但即使从“快速入门”>“配置”页面进行测试,我仍然没有在文件中看到任何数据。
我当前运行的代码来自@Tarik在以下帖子中提供的答案:(对于facebook本身,但编码是相同的) Facebook Messenger API - 无法验证 Webhook URL (PHP)
我的 webhook.php 文件是:
$message = date('Y-m-d H:i:s');
foreach ($_REQUEST as $key => $value){
$message .= "$key => $value (".$_SERVER['REQUEST_METHOD'].")\n";
}
$input = file_get_contents("php://input");
$array = print_r(json_decode($input, true), true);
file_put_contents('log.txt', $message.$array."\nREQUEST_METHOD: $_SERVER[REQUEST_METHOD]\n----- Request Date: ".date("d.m.Y H:i:s")." IP: $_SERVER[REMOTE_ADDR] -----\n\n", FILE_APPEND);
if ( isset($_REQUEST['hub_challenge']) ){
echo $_REQUEST['hub_challenge'];
}
从 Webhook 配置页面发送测试时,log.txt 文件仅返回以下内容:
2024-08-08 13:17:38
REQUEST_METHOD: GET
----- Request Date: 08.08.2024 13:17:38 IP: 173.252.107.116 -----
我有点被困在这里,也失去了想法。谁能告诉我如何实际读取我应该在网络钩子上收到的数据?我正在考虑使用验证令牌来查看 Meta 是否需要它进行某种异步通信,但情况似乎并非如此。任何帮助将不胜感激。
解决方案是真实的 URL。就我而言,我没有在 URL 末尾提供 /(我的回调 URL 仅显示给目录,而不显示文件本身)。
它是这样的:https://demourl.com/webhook
它需要是:https://demourl.com/webhook/
对于任何面临同样情况的人,您可以使用 https://www.whatsmydns.net/redirect-checker 来检查您的真实网址。
另请注意,我必须删除 Webhook 订阅并重新添加它才能实际接收 URL 更改。只是改变它并没有达到目的。
感谢@CBroe 引导我走向正确的方向!!!