我正在尝试在我的PHP网络服务器上为新的Facebook Messenger bot平台设置一个Web挂钩,并且收到此错误:
无法验证网址。响应与挑战不符, 期望值= '364011207',已收到='
https://developers.facebook.com/docs/messenger-platform/quickstart
https://developers.facebook.com/docs/messenger-platform/webhook-reference#common_format
非常感谢任何帮助。
答案 0 :(得分:23)
我遇到了一个问题。我废弃了我的js尝试并使用以下代码创建了一个新的php文件:
<?php
$challenge = $_REQUEST['hub_challenge'];
$verify_token = $_REQUEST['hub_verify_token'];
if ($verify_token === 'my_token_code') {
echo $challenge;
}
我在此视频的前10分钟获得了此代码: https://www.facebook.com/marketingdevelopers/videos/883648801749520/
答案 1 :(得分:6)
该代码是 node.js 代码,应该在不在HTML中的<script>
标记中的服务器上运行。
这里简单介绍了如何使用node.js设置messenger bot: https://github.com/voronianski/simon-le-bottle
基本上,您需要确保拥有支持node.js应用程序的主机并按原样运行它。它不适用于HTML。
答案 2 :(得分:4)
我刚刚在回调网址中添加了'/ webhook'来解决这个问题......
答案 3 :(得分:3)
@shane
webhook: function(req, res) {
if (req.query['hub.verify_token'] === 'tokentoken') {
res.send(req.query['hub.challenge']);
} else {
res.send('Error, wrong validation token');
}
}
请注意你究竟在做什么。但这就是我所做的,而且它正在发挥作用。
我已经使用ngrok服务器进行了测试,因为我没有域名,回调网址为https://werwrwetwtw.ngrok.io/webhook
希望这有帮助!
答案 4 :(得分:2)
不确定是否有这个帮助,但FB发送的查询参数是否使用下划线而不是点,例如:
P.S。
抱歉,这适用于PHP
答案 5 :(得分:2)
如果您将其作为<a href="/[table_name]/[table_item]>Link text</a>
应用程序运行,并且来自问题中提到的The Facebook Quickstart Guide,则必须将Webhook URL指向Node.js
。请注意the tutorial的这一部分:
[your-server-root]/webhook