Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Facebook最近停止向我们的webhook应用程序推送更新?_Facebook_Facebook Graph Api - Fatal编程技术网

为什么Facebook最近停止向我们的webhook应用程序推送更新?

为什么Facebook最近停止向我们的webhook应用程序推送更新?,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我继承了一个在Node中编写的Facebook webhook应用程序,它跟踪与我们组织相关的几个Facebook页面的帖子。2017年7月2日(大约3周前),Facebook似乎停止向该应用程序推送webhook更新。在此之前,该应用程序已成功运行了几年 以下是我在应用程序访问日志中看到的最后一个条目: 724661:173.252.105.118 - - [02/Jul/2017:16:40:23 -0700] "POST /callback/facebook HTTP/1.1" 200 5

我继承了一个在Node中编写的Facebook webhook应用程序,它跟踪与我们组织相关的几个Facebook页面的帖子。2017年7月2日(大约3周前),Facebook似乎停止向该应用程序推送webhook更新。在此之前,该应用程序已成功运行了几年

以下是我在应用程序访问日志中看到的最后一个条目:

724661:173.252.105.118 - - [02/Jul/2017:16:40:23 -0700] "POST /callback/facebook HTTP/1.1" 200 5 "-" "Webhooks/1.0"
724662:66.220.145.151 - - [02/Jul/2017:16:55:29 -0700] "POST /callback/facebook HTTP/1.1" 200 5 "-" "Webhooks/1.0"
724663:31.13.114.11 - - [02/Jul/2017:16:55:30 -0700] "POST /callback/facebook HTTP/1.1" 200 5 "-" "Webhooks/1.0"
我已经通过使用curl发送一个手动请求确认了我们的应用程序仍在运行,该请求已成功处理

我在这里看到,Facebook将其API v2.3的可用性标记为7月8日结束:

在报告中,它指出:

在v2.3和v2.4之间有许多页面权限更改,您的应用程序需要对此进行说明。值得注意的是,现在需要一个页面访问令牌来与/v2.4/{Page_id}/promotable_posts、/v2.4/{Page_id}/offers和/v2.4/{Page_id}/里程碑进行接口


这就是Facebook停止向我们的webhook端点推送更新的原因吗?如果是这样,我在哪里可以找到有关在webhook中使用页面访问令牌的更多信息?

如果你的应用程序响应速度不够快,Facebook将在一段时间后停止向你的webhook回调URL发送更新。在这种情况下,您必须再次设置回调URL

这在某种程度上被记录在 ,

当Facebook调用webhook回调时,您的webhook回调应该始终返回200 OK HTTP响应。否则可能会导致您的webhook被Messenger平台取消订阅

尽快返回200OK HTTP是非常重要的。Facebook将在发送下一条消息之前等待200分钟。在大容量的机器人中,延迟返回200会导致Facebook向您的webhook发送消息的严重延迟

这里没有明确提到这一点,但我非常确定,如果在一定时间内没有回复200,也会被视为失败

甚至像Facebook Scraper(从用户共享的链接中获取开放图形元数据)这样的实时性较差的工具也有10秒的超时时间;所以Facebook对网络钩子的耐心不会再长了,很可能会(大大)缩短,特别是与Messenger平台相关的网络钩子——毕竟,这些响应时间直接影响用户体验


编辑:您意识到您实际上询问的是Graph API webhooks,而不是Messenger平台。但这与以下情况相似—

如果发送到服务器的任何更新失败,我们将立即重试,然后在接下来的24小时内以更低的频率重试几次。在这些情况下,您的服务器应该处理重复数据消除。24小时内不接受的更新将被删除

响应
您的端点应该为所有更新通知返回200 OK HTTPS响应


从FB开发者小组的讨论中,我知道在这种情况下,重复超时也会导致从webhook取消订阅。

如果你的应用程序响应速度不够快,Facebook将在一段时间后停止向你的webhook回调URL发送更新。在这种情况下,您必须再次设置回调URL

这在某种程度上被记录在 ,

当Facebook调用webhook回调时,您的webhook回调应该始终返回200 OK HTTP响应。否则可能会导致您的webhook被Messenger平台取消订阅

尽快返回200OK HTTP是非常重要的。Facebook将在发送下一条消息之前等待200分钟。在大容量的机器人中,延迟返回200会导致Facebook向您的webhook发送消息的严重延迟

这里没有明确提到这一点,但我非常确定,如果在一定时间内没有回复200,也会被视为失败

甚至像Facebook Scraper(从用户共享的链接中获取开放图形元数据)这样的实时性较差的工具也有10秒的超时时间;所以Facebook对网络钩子的耐心不会再长了,很可能会(大大)缩短,特别是与Messenger平台相关的网络钩子——毕竟,这些响应时间直接影响用户体验


编辑:您意识到您实际上询问的是Graph API webhooks,而不是Messenger平台。但这与以下情况相似—

如果发送到服务器的任何更新失败,我们将立即重试,然后在接下来的24小时内以更低的频率重试几次。在这些情况下,您的服务器应该处理重复数据消除。24小时内不接受的更新将被删除

响应
您的端点应该为所有更新通知返回200 OK HTTPS响应


从FB开发者小组的讨论中,我知道在这种情况下,重复超时也会导致从Webhook取消订阅。

不,上述更改与此无关。如果你的应用程序响应速度不够快,Facebook将在一段时间后停止向你的应用程序发送更新。在这种情况下,您必须重新设置回叫URL。@CBroe感谢您的回复。这是基于您运行webhook的经验还是有文档记录的?再次感谢。奇怪的是,我并没有在dev仪表板中收到关于响应缓慢的警报。但关键的教训是,我们的应用程序在处理此类突发事件时需要更具弹性。如果你想将你的评论合并成一个答案,我会选择它作为正确答案。不,上面提到的更改与此无关。如果你的应用程序响应速度不够快,Facebook将在一段时间后停止向你的应用程序发送更新。在这种情况下,您必须重新设置回叫URL。@CBroe感谢您的回复。这是基于你运行webhook的经验,还是有记录在案