我正在做一个facebook messenger机器人。启动后,它会调用WebHook。 不幸的是,第一次启动后不会停止使用相同的参数抛出相同的调用。 设置为:
源代码是:https://github.com/Ellusu/nuraghebot-facebookmessenger/blob/master/index.php
我哪里错了? 为什么只有一个电话?
答案 0 :(得分:2)
根据您的代码,我决定您无法设置您的webhook,因此请documentation
在您的webhook网址中,添加验证码。你的代码应该 期待您之前定义的验证令牌,并回复 在验证请求中发回的质询。单击“验证和 保存新页面订阅中的“按钮”以使用a调用您的webhook GET请求。
因此,要使PHP在webhook设置中取得成功,您必须返回 hub_challenge 参数。
使用您的令牌定义$ verify_token并添加如下内容:
if (!empty($_REQUEST['hub_mode']) && $_REQUEST['hub_mode'] == 'subscribe' && $_REQUEST['hub_verify_token'] == $verify_token) {
// Webhook setup request
echo $_REQUEST['hub_challenge']; exit;
}
成功设置后,您可以从脚本中删除此代码。
或者,如果您的webhook已经挂钩:
您应该跳过任何读取和传递消息,如下所示:
if (!empty($input['entry'][0]['messaging'])) {
foreach ($input['entry'][0]['messaging'] as $message) {
// Skipping delivery messages
if (!empty($message['delivery'])) {
continue;
}
// Skipping read messages
if (!empty($message['read'])) {
continue;
}
}
}
或者,您可以取消选择 message_reads & Facebook页面设置/ Webhooks页面订阅部分中的 message_deliveries 复选框。