FB 实时 API 在某些连接 (音乐、电影、书籍、电视) 方面未能持续通知或通知不一致。

23

我目前在使用Facebook的实时API时遇到了问题。

我希望订阅用户资料中各种类别下的“喜欢”,包括音乐、书籍、电视和电影。

当我通过FQL和Graph查询时,我可以获得正确的信息,但是当这些条目在用户资料中发生更改时,Facebook并没有向我的通知端点发送通知。

订阅和验证都没问题。以下是来自我的应用的Facebook活动订阅:

["object"]=> string(4) "user"
  ["callback_url"]=> <correct callback URL>/facebook/update/"
  ["fields"]=>array(11) {
    [0]=> string(13) "birthday_date"
    [1]=> string(5) "books"
    [2]=> string(10) "first_name"
    [3]=> string(7) "friends"
    [4]=> string(5) "likes"
    [5]=> string(6) "movies"
    [6]=> string(5) "music"
    [7]=> string(4) "name"
    [8]=> string(3) "sex"
    [9]=> string(2) "tv"
    [10]=> string(8) "username"
  }
  ["active"]=> bool(true)

起初我没有订阅 likes,但是添加它以查看是否可以解决问题...然而并没有。

文档中写到:

以下是您可以订阅的用户连接列表:feed、friends、activities、interests、music、books、movies、television、likes、checkins

当这些数据中的任何一个发生更改(包括 friends)时,我都会收到通知,只不过没有通知 musicbooksmoviestelevision

更奇怪的是,当我“喜欢”一个随机的 Facebook 页面(即使用喜欢按钮,而非将其添加到我的个人资料字段中),我会在 like 字段上触发通知。当我取消对同一页面的喜欢时,我会在 likesmusicbooksmoviestelevision 上触发通知!

不用说,我很困惑。有人遇到过这种情况或者能建议一个开始寻找解决方法的地方吗?

编辑:经过进一步的测试,我发现通知在某些条件下会发生,而在其他情况下则不会。例如,如果您喜欢一个乐队的页面,将会发送通知。如果您从“编辑个人资料”页面更改音乐喜好,则不会发送通知。因此,这听起来像是一个错误。


我在Facebook论坛的实时更新主题http://forum.developers.facebook.net/viewtopic.php?pid=366327#p366327上发现有人遇到了类似的问题。可能是个bug? - Chris S
你把它记录为一个 bug 了吗? - DMCS
2
请在FB Bug Tracker中将此问题报告,我会确保它得到关注。 - Matthew Johnston
我一遍又一遍地看到这个……并不是实时的……但是如果你试着想象复杂性和需要发送的当前通知,你就会理解:) - jribeiro
嗨,我最终以不同的方式实现了这个,所以我不再拥有测试代码或者能够验证修复 - 还值得提交吗? - Chris S
像 Facebook 和 Twitter 这样的大型应用程序都是基于“最终一致性”原则运行的... :) - Andrew Grothe
1个回答

1

虽然不是完全的答案,但还是有帮助的...

几个月前,我被分配了一个任务来修复一个Facebook应用程序。 它使用Facebook提供的信息来构建统计数据。但政策发生了变化,Facebook停止提供该信息。

我使用图形和FQL来获取那些信息。 Grahp API很好用,因为你不需要注册,而且答案以JSON格式呈现。 主要问题是Graph API非常慢......

让我给你一个提示:fql非常类似于SQL,也许你应该尝试一些函数或其他本地于SQL的方法。

谁知道呢!


谢谢。原计划是将用户连接到FB,从图形API下载所需的信息并订阅该信息的任何更新。由于由于我提出的问题而失败,我们现在改为在用户访问时动态查找信息。速度较慢,但确保数据准确无误且运行良好。 - Chris S

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