Facebook将空POST发送给webhook

lei*_*sat 6 facebook webhooks

我正在尝试通过Facebook应用程序为我的页面安装一个webhook for leadgen事件.所以我有:

  1. Facebook页面来自哪里
  2. Facebook App
  3. 我希望保存潜在客户的网络服务器

我相信应用程序和网络服务器连接良好.网络挂接显示在应用页面等等.但是,当我试图创建此工具测试引线https://developers.facebook.com/tools/lead-ads-testing我得到一个不带数据的POST请求.

我怀疑权限问题,但我能够直接使用PHP SDK检查页面的引导(通过leadgen_id),并且只是通过URL从Facebook发送POST请求,因此他们还不知道令牌.

对同一个url(curl -d "param=value" https://..url..)的UPD Plain POST请求按预期工作.

CBr*_*roe 7

Facebook发送webhook数据Content-Type: application/json,而不是…: application/x-www-form-urlencoded(作为method = post的普通表单.)

因此,PHP不会填充$ _POST - 您需要读取原始输入流.这可以使用file_get_contents('php://input')- 然后只应用于json_decode该数据,并且您将拥有适当的数据结构.


小智 2

Facebook 在请求正文中发送潜在客户数据。如果您使用框架,请检查您是否有权访问请求正文。尝试使用像 Runscope 这样的第三方中间服务来查看完整的请求,它非常有用