我正在做一个 Facebook Messenger 机器人。启动它后,它会调用 WebHook。
不幸的是,第一次启动后不会停止抛出具有相同参数的相同调用。
设置为:
- 消息传递;
- 消息读取数;
- 消息;
- 消息传递_选择;
- 消息传递_回发。
源代码是这样的:https://github.com/Ellusu/nuraghebot-facebookmessenger/blob/master/index.php https://github.com/Ellusu/nuraghebot-facebookmessenger/blob/master/index.php
我哪里错了?
为什么只有一个人打电话?
根据你的代码,我认为你无法设置你的网络钩子,所以从文档 https://developers.facebook.com/docs/messenger-platform/product-overview/setup#webhook_setup
在您的 webhook URL 中,添加验证代码。你的代码应该
期望您之前定义的验证令牌,并使用
在验证请求中发回的质询。单击“验证并
新页面订阅中的“保存”按钮可使用以下命令调用您的 webhook
获取请求。
因此,要使 PHP 成功设置 Webhook,您必须返回集线器挑战范围。
使用您的令牌定义 $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 已经挂钩:
你应该跳过任何read and delivery消息,像这样:
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;
}
}
}
或者,您可以取消选择消息读取数 & 消息传递Facebook 页面设置/Webhooks 的页面订阅部分中的复选框。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)