Facebook:通过URL识别对象ID和类型

时间:2012-07-28 14:22:44

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

我想根据其URL获取Facebook对象的ID和类型。

我的目标是确定某个网址是否为Facebook活动(例如https://www.facebook.com/events/258629027581347)。

因此,如果我拥有该对象的object-id,我可以执行以下FQL查询,并知道如果我得到结果,则该对象是一个事件:

select eid from event where eid = 258629027581347

问题是只根据URL获取object-id。我想要从URL解析id,因为无法保证URL的格式在将来保持不变。我想通过Facebook的API之一找到一种方法。

在搜索了一段时间后,我找到了以下有关如何执行此操作的建议,但遗憾的是,这些建议都不起作用:

  1. 来自object_url表的FQL查询 - 查询不会产生任何结果:

    SELECT url, id, type, site FROM object_url WHERE url = "https://www.facebook.com/events/258629027581347"

  2. 使用图表api:

    https://graph.facebook.com/https://www.facebook.com/events/258629027581347

    这将返回仅包含URL的JSON对象 - 无id。

  3. 将图表api与?ids=一起使用,如下所示:

    https://graph.facebook.com/?ids=https://www.facebook.com/events/258629027581347

    这将返回以下JSON,也没有id:

    { "https://www.facebook.com/events/258629027581347": { "id": "https://www.facebook.com/events/258629027581347", "metadata": { "connections": { "comments": "https://graph.facebook.com/https://www.facebook.com/events/258629027581347/comments?access_token=AAACEdEose0cBADzSuuyJWohIwkXuvQGJUsIlSJz04J4nzKqqQXTvGiPXf4YDBPuh0rdyXgSWnWcJpN3X3GaATVLjG6UmZBiHKmcxCWwZDZD" }, "type": "link_stat" } } }

  4. 我在这里缺少什么?

    谢谢!

1 个答案:

答案 0 :(得分:0)

据我所知,目前还没有一种API方法可以获取Facebook网址并告诉您它是什么。解决这个问题的唯一方法是解析URL并查找最后一个元素并将其传递给https://graph.facebook.com/258629027581347?metadata=1&access_token=XXXX

这是一个崇高的目标,你正试图建立一个面向未来的Facebook应用程序,但我认为这不是一个可能性。 Facebook平台仍在不断发展。 api方法保持不变于url struture的保证较少。