如何获取OpenGraph对象的Object ID?

时间:2013-03-06 09:17:51

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

我正在尝试使用以下FQL获取OpenGraph对象的对象ID:

SELECT url,site,id 
FROM object_url 
WHERE url IN ( 
    'http://www.MY_OPENGRAPH_OBJECT_URL'
)

我得到的结果ID与https://developers.facebook.com/tools/debug

返回的ID不同

我无法用https://graph.facebook.com/ID查询(我可以使用Facebook调试器返回的ID)。

我得到的这个不同的ID是什么? 我怎样才能获得正确的对象ID?使用Facebook Android SDK v3有一种简单的方法吗?

1 个答案:

答案 0 :(得分:3)

基于facebook documentation

  id - The ID of the Graph object represented by the URL

使用网址:

SELECT url, id, type, site FROM object_url WHERE url = "http://www.mashable.com"

回应:

{
  "data": [
    {
      "url": "http://www.mashable.com", 
      "id": 435564669831754, 
      "type": "link", 
      "site": "www.mashable.com"
    }
  ]
}

使用ID:

SELECT url, id, type, site FROM object_url WHERE id = 435564669831754

回应:

{
  "data": [
    {
      "url": "http://mashable.com/stories/", 
      "id": 435564669831754, 
      "type": "link", 
      "site": "mashable.com"
    }
  ]
}

在这种情况下,对于mashable URL,响应值为“Type:link”,如果你用返回id调用graph api,它将不会给出任何值。但如果返回类型为“Page”,则返回ID将起作用。

但是如果尝试使用这个IMDB网址,

SELECT url, id, type, site FROM object_url WHERE url = "http://www.imdb.com/title/tt0117500/"

回应:

 {
  "data": [
    {
      "url": "http://www.imdb.com/title/tt0117500/", 
      "id": 114324145263104, 
      "type": "page", 
      "site": "www.imdb.com"
    }
  ]
}

来自文档 - >

type - The type of object the URL represents (note: 'Page' incorporates any URL with an 'og:type' specified)

我也在

中尝试www.imdb.com
SELECT url, id, type, site FROM object_url WHERE url = "http://www.imdb.com"

回应:

{
  "data": [
    {
      "url": "http://www.imdb.com", 
      "id": 6903354771, 
      "type": "link", 
      "site": "www.imdb.com"
    }
  ]
}

但是如果你检查Fb Debugger工具中的任何url,在最后一节中有一个带有ID的Graph API URL可以正常工作。我不确定facebook是如何在调试器中获得它的。