Facebook图形API - 获取URL的ID?

20

这似乎是从图形API中可以期待的相当明显和基本的事情,但我在处理它时遇到了严重困难。 我想做的就是获取任何特定URL的ID。 他们有一个方法可以做到这一点:

https://graph.facebook.com/?ids=http://www.imdb.com/title/tt0117500/

这很有效。但是如果我尝试另一个URL,例如我的博客,

https://graph.facebook.com/?ids=http://dusda.vox.com

它不像所有的例子一样给我一个数字ID回来,而是这个:

{"http:\/\/dusda.vox.com":{"id":"http:\/\/dusda.vox.com"}}
如果我尝试使用那个“id”,我什么也得不到(可能是因为查询字符串看起来无法解析):
Request: https://graph.facebook.com/http://dusda.vox.com/likes
Response: {"id":"http:\/\/dusda.vox.com\/likes"}

那这是怎么回事呢?Graph API只是有选择性地可靠,还是我误解了什么?我也尝试过一些我知道在Facebook上很受欢迎的网址,但结果参差不齐。


老问题,仍然没有解决方案?我尝试了cnn.com,在调试器中运行良好,但是使用API不返回ID... - Nathan H
6个回答

10

尝试使用FQL来实现此操作;

http://graph.facebook.com/fql?q=select%20url%2C%20id%2C%20type%2C%20site%20from%20object_url%20where%20url%20%3D%20%22http%3A%2F%2Fkriek.hu%2F%22

返回:

{
   "data": [
      {
         "url": "http://kriek.hu/",
         "id": 497425470154,
         "type": "link",
         "site": "kriek.hu"
      }
   ]
}

了解更多信息,请参见object_url

希望对你有所帮助!


使用这个,你可以得到一个有用的ID。+1 - Ivan Ivanic
我不知道你怎么看,但我得到的ID是无效的(即使在调试器中也是如此)。 - Nathan H
4
FQL正逐渐被弃用。 - Flimm

8

仅有安装了Facebook分享/点赞按钮的页面才能获得ID。否则API将返回分享数和请求URL。


4
这个链接(https://graph.facebook.com/?id=http://www.huffingtonpost.com/2011/06/14/new-york-mercatus-center-least-free-state_n_876616.html)有一个“赞”按钮,但链接仍然提供有限的信息。两个页面在<head>部分都有一个fb:app_id。 - karatedog
1
这种行为在哪里有记录? - Hugo Tunius

4

3

虽然这是一个很老的问题,但以下是我发现对我有效的解决方案,因为这里的任何答案都没有解决我的问题:

如果您有一个与url相关联的自定义对象,则Pepe建议的方法仅提供FB分配给type = link的url的id。 (这与任何评论无关)

在我的情况下,我需要我的自定义对象id,以便我可以从中提取相关评论。 您可以通过在“link_stat”表上选择“comments_fbid”来使用FQL获取对象id。 (即使没有添加评论,这也将返回对象id,因此它应该适用于其他情况)

api.facebook.com


2
此时,没有一种建议的解决方案适用于所有URL。只有调试器能够正确获取图形ID。
例如:

Debugger: https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fwww.amazon.de%2Fgp%2Fproduct%2F3810510793%2F

针对URL: www.amazon.de/gp/product/3442465583/

Result: https://graph.facebook.com/10150771435736113

{
   "url": "http://www.amazon.de/dp/3810510793/ref=tsm_1_fb_lk",
   "type": "book",
   "title": "Die unwahrscheinliche Pilgerreise des Harold Fry: Roman",
   "image": [
      {
         "url": "http://ecx.images-amazon.com/images/I/51I4E81xrRL._SL160_.jpg"
      }
   ],
   "description": "Die unwahrscheinliche Pilgerreise des Harold Fry: Roman",
   "site_name": "Amazon.de",
   "updated_time": "2012-12-19T16:54:27+0000",
   "id": "10150771435736113",
   "application": {
      "id": "164734381262",
      "name": "Amazon",
      "url": "https://www.facebook.com/apps/application.php?id=164734381262"
   }
}

0

我在这里遇到了同样的问题,我试图获取IMDB获取的相同数据。几乎是撞墙,我决定查看Facebook的js函数。看看我得到了什么,解释在链接中。

从具有Facebook ID的页面获取有限数据

祝好


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