在Facebook API中,如何从通知对象中检索源对象?

时间:2011-08-19 13:37:40

标签: facebook facebook-graph-api notifications facebook-fql

由于Facebook Graph API中没有通知,我使用FQL检索它们,详见https://developers.facebook.com/docs/reference/fql/notification/

我想要做的是使用返回的信息来获取“源对象”。因此,如果通知是“Bob评论您的状态”,我想找到该状态对象 - 如果Bob评论我的笔记,或者发布到我的活动的墙上等等。

notification_idsender_idrecipient_id似乎没有足够的信息来实现这一目标。 href字段非常接近 - 它将返回一个用户可以点击以链接到相应页面的链接,但这对我来说看起来没什么帮助,因为URL格式在“源对象“类型。我找不到一种可靠的方法将href转换为我可以传递给Graph API的参数。

所以,如果我想做的事情是可能的,那么最好的方法是什么?

我的想法:

  1. 有没有办法将“用户友好”href提供给API并让它返回相应的图谱API结果(或让它返回相应的图谱API网址)?

  2. 是否有其他方式可以使用或组合FQL'通知'查询返回的信息来制作正确的图谱API网址?

  3. 是否有另一种检索通知的方法可以提供我想要的内容?

  4. 我正在使用PHP和Facebook的PHP SDK,虽然这看起来不像PHP特定的问题。

    提前致谢!

1 个答案:

答案 0 :(得分:3)

您可以从notification表中获取object_idobject_type并使用该表来获取原始帖子。抱歉,“通知”表中未记录此信息,但现在已记录在案。

例如为: select object_id, object_type from notification where recipient_id=<user_uid>

返回类似的内容:

[
  {
    "object_id": "<object_id_1>",
    "object_type": "group"
  },
  {
    "object_id": "<object_id_2",
    "object_type": "stream"
  },
]

然后您可以使用object_id来获取帖子:

https://graph.facebook.com/<object_id_1>?access_token=<access_token>