【问题标题】:Realtime User friends updates: new friends实时用户朋友更新:新朋友
【发布时间】:2013-02-10 19:48:27
【问题描述】:

不幸的是,facebook 实时 api 仅通知应用用户的朋友连接中发生了一些变化

我必须做些什么来确定 UserA 刚刚与 UserX 成为朋友?

目前,每当我从 facebook 实时 api 收到 UserA 的朋友已更改 通知时,我都会收到整个 /UserA/friends.json,对整个结果进行分页以确定自上次以来添加的内容时间。

虽然这可行,但感觉在计算周期中有很多浪费,我想知道是否有更优雅的方法来解决这个问题......

【问题讨论】:

    标签: facebook facebook-graph-api real-time


    【解决方案1】:

    这就是它的设计方式,没有“解决方案”。

    请注意,这不包括实际数据值(来自 在更新之前或之后)。要获得这些,您的应用可以请求 他们像往常一样,受到通常的隐私限制。对于数据 您可以随时访问,您可能希望查询 紧随此回调的数据,以便它准备好何时 用户返回您的应用。

    来源:https://developers.facebook.com/docs/reference/api/realtime/

    这很有意义,因为 Facebook 能够在不知道您是否具有获取新数据的适当权限的情况下向您发送所有更新,因此在隐私方面是一种非常简单的方法。

    如果您有有效的用户令牌(在您的数据库中),您可以通过 Graph API / FQL 检索更新的字段并将其与数据库中的数据进行比较。如果没有实时 API,您需要每 x 小时/天提取一次数据,这更加浪费资源。

    如果您没有有效的用户令牌,您可以在用户返回您的应用时通过 Graph API / FQL 检索更新的字段,并将其与数据库中的数据进行比较。如果没有实时 API,您总是需要在用户回来时更新/检查数据。

    【讨论】:

    • 好的,我有有效的用户令牌。但是如何检索“更新”字段?例如自从我上次检查以来的新朋友。我认为目前没有办法查询按添加日期排序的朋友。因此,如果一个 facebook 用户刚刚有了 1 个新朋友,并且实时 api 通知了这一点,我仍然需要查询他的所有朋友并与我已有的朋友进行比较?
    • 我们已经每天进行大约 100k 的 api 调用,主要由实时 api 触发。只是想知道是否有办法降低“识别新朋友”的成本。
    • 是的,朋友连接中没有“created_date”字段,也无法通过virtual“created_date”afaik 对结果进行排序。
    • 真的要保存用户的好友吗?你不能在你的应用程序需要的时候得到它。也许不是您的应用程序的所有功能都需要它?当您需要验证友谊时,您可以使用 FQL 查询:(js) "SELECT uid2 FROM friend WHERE uid1=" + uid + " AND uid2=" + targetId + ")" 我就是这样做的。
    猜你喜欢
    • 2011-08-10
    • 1970-01-01
    • 2015-10-21
    • 2012-12-19
    • 1970-01-01
    • 2014-05-26
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多