完全无法从Facebook接收实时更新

22

我已经设置了我的服务器以接收来自Facebook的实时更新,我已经完成了身份验证以获取令牌等操作,注册了回调URL...但自认证GET请求以来,我还没有收到任何通知。

当我GET graph.facebook.com/APP-ID/subscriptions时,我收到...

data: [
{
  object: "user",
  callback_url: "REDACTED-VAID-URL",
  fields: [
    "activities",
    "books",
    "checkins",
    "events",
    "feed",
    "friends",
    "interests",
    "likes",
    "location",
    "movies",
    "music",
    "television"
  ],
  active: true
}
]
据我所知,实时通知已经正确地设置了。当我向回调URL发送自己的POST时,服务器每次都会向我发送带有POST详细信息的电子邮件,但在facebook更新后,我从未收到过这封邮件,因此我非常确定它没有触发该URL。我们的应用程序有几个经过身份验证的用户,我们都尝试了各种在Facebook上尝试触发它的方法(状态更新、发布、点赞等),我可以从正常的REST API中拉取他们的Feed等内容。
这里肯定还有什么东西我遗漏了,我需要做什么才能让它工作?!

1
我和你在这个问题上的进展一样。我已经成功设置了订阅,但是我没有收到任何通知。点赞! - AlexanderN
1
不是真正的答案,但是针对Alexander关于这个问题和相关问题的ping,我很抱歉没有太多可以提供的。假设你在Facebook上的应用程序已经正确配置(因为你正在获得正确的订阅信息),我的想法只是确保来自Facebook的点击能够通过你的网络/防火墙等到达你的服务器。其他来自Facebook的点击是否显示?你是否尝试从你的直接网络之外的某个地方POST到回调URL?很抱歉我不能提供更多帮助... - Jim Miller
1
我实际上已经测试过我可以从Facebook服务器接收通知,我找到了创建测试用户的选项,并在以测试用户的身份发布内容时接收通知。 我偶尔会收到来自真实用户在Facebook上“喜欢”页面的通知,但这只发生在某些用户身上,而非所有用户,我从未收到过用户发布内容的通知。这必须是Facebook的问题,我已经提交了错误报告,但一周多了仍未收到任何反馈。 - Malcolm Christie
2个回答

3

对于使用PHP的用户...

Facebook实时POST数据不能通过PHP中正常的$_POST数组传递和识别。 您可以使用以下代码获取构成请求的原始JSON:

$json = file_get_contents("php://input");

您可以通过以下方式将其转换为数组:

$realtime = json_decode($json, true);

很遗憾,然而,在这些请求中Facebook给你的数据大多是毫无价值的 :-/


1
+1 关于获取 POST 数据的提示。此外,Facebook 给出的数据一点也不无用。他们告诉你哪个对象发生了变化,然后就由你自己调用图形 API 来获取更新的数据。 - Todd Chaffee

0

在我的情况下,我接受了GET请求,但是没有在回调URL上接受POST请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接