PHP回应Facebook Webhook API

PHP回应Facebook Webhook API,php,wordpress,facebook,http-headers,webhooks,Php,Wordpress,Facebook,Http Headers,Webhooks,Facebook最近对Leadgen Webhooks做了一个改动,你必须对每一条潜在客户回复“200 OK”,否则他们会继续用该潜在客户打电话给你。问题是,他们并没有提到是否有办法做到这一点,我一直在尝试发送回复,但迄今为止没有成功 到目前为止,我所尝试的: 状态_头(200) http\u响应码(200) 标题[$\u服务器['SERVER\u协议'.'200正常] 标题[$\u服务器['SERVER\u协议'.'200确定',正确,200); 以上这些都不起作用。我还检查了,以确保在我试图

Facebook最近对Leadgen Webhooks做了一个改动,你必须对每一条潜在客户回复“200 OK”,否则他们会继续用该潜在客户打电话给你。问题是,他们并没有提到是否有办法做到这一点,我一直在尝试发送回复,但迄今为止没有成功

到目前为止,我所尝试的:

状态_头(200)

http\u响应码(200)

标题[$\u服务器['SERVER\u协议'.'200正常]

标题[$\u服务器['SERVER\u协议'.'200确定',正确,200);

以上这些都不起作用。我还检查了,以确保在我试图更改状态标头时,当前标头没有通过检查
headers\u sent()
发送,并且返回了
FALSE

我还尝试检查状态标题是否可以通过以下任一项查看:

error_log(print_r(getallheaders(), true));
error_log(print_r(headers_list(), true));
但是都没有打印出状态标题,但是如果我要执行类似于
header('foo:bar')
的操作,就会在headers列表中看到

我完全不知所措,如果能帮我指出正确的方向,我将不胜感激

话虽如此,提到这个脚本在Wordpress环境的主题函数中运行可能是相关的。此外,脚本本身(我正在进行这些更改)在
ob_start()
ob_end_clean()
中运行(不确定是否相关)

编辑:我刚刚发现,当我导致一个致命错误,导致我的脚本过早结束时,Facebook收到200 OK的响应(讽刺的是)。这让我认为问题是因为在
ob\u start
ob\u end\u clean()中运行脚本。这会延迟标头响应吗


编辑2:此问题仍未解决。我有一个临时解决方案,在35%的时间内成功发送响应。我从webhook中获得潜在客户,从潜在客户中检索信息,然后执行SQL查询以检查该潜在客户是否已收到,如果收到,则退出(200)
。就这么简单,对于已经存在的潜在客户来说,这怎么可能需要时间呢?不会!但我的服务器(根据Facebook的广告工具)仍然超时(没有响应)50%的时间?有些东西不合算。

PHP默认情况下已经发送了
200 OK
。您不需要添加任何代码。我认为问题在于在ob\u start()和ob\u get\u contents()中运行脚本。这可能会延迟PHP响应?除非您在输出缓冲区内执行的操作需要很长时间。您的脚本必须在15-20秒内完成运行。如果您执行的是需要很长时间的大量处理,则应将其放入队列或其他东西中,以便在超时时间内响应。如果看看我的编辑,这类事情确实发生了。我不确定如何将事情放入队列,但我可以在某个地方强制进行早期状态响应吗?我有几个循环遍历了lead响应。这就是为什么我认为在循环之前发送响应是有意义的。你应该将webhook信息保存到数据库中,哈如果你有一个cron或其他东西在后端处理它,Facebook在脚本完成之前不会识别你的响应是否成功。
error_log(print_r(getallheaders(), true));
error_log(print_r(headers_list(), true));