Facebook Graph API和SQL API为同一URL返回不同的值

时间:2015-04-15 11:59:58

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

我尝试将我的Facebook应用程序从FQL API(1.0)迁移到GraphAPI(2.3),我遇到了一些问题。

我的Facebook应用程序的主要目标是获取指定链接的当前计数,共享和评论(文章网址)。 (我认为,类似于How to get facebook share, like, comment count for a url with graph api only (in a non-deprecated way)

在(旧)FQL API中,我可以通过执行SELECT ... FROM link_stat表来获取此信息。例如:

https://graph.facebook.com/fql?access_token=xxxxxxxxxxxx|yyyyyyyya&q=SELECT%20click_count%2Ccomment_count%2Ccommentsbox_count%2Clike_count%2Cshare_count%2Ctotal_count%2Cnormalized_url%20FROM%20link_stat%20WHERE%20url%20IN%20%28"http%3A//sport.wp.pl/kat%2C1715%2Ctitle%2CSwiat-pokochal-polskiego-sportowca-Mimo-ze-ledwo-dukal-po-angielsku%2Cwid%2C17449498%2Cwiadomosc.html"%29

以JSON格式返回信息,例如:

{
 "data": [
  {
   "like_count": 21, 
   "comment_count": 0, 
   "click_count": 0, 
   "commentsbox_count": 0, 
   "total_count": 29, 
   "share_count": 8, 
   "normalized_url": "http://sport.wp.pl/kat,1715,title,Swiat-pokochal-polskiego-sportowca-Mimo-ze-ledwo-dukal-po-angielsku,wid,17449498,wiadomosc.html"
  }
 ]
}

在新的GraphAPI(2.3)理论上,这些信息可通过以下方式获得:

网址和/ {object-id} /喜欢边缘:

https://developers.facebook.com/docs/graph-api/reference/v2.3/url https://developers.facebook.com/docs/graph-api/reference/v2.0/object/likes

哪个返回值。例如:

{
 "share": {
  "comment_count": 0, 
  "share_count": 42
 }, 
 "og_object": {
  "url": "http://sport.wp.pl/kat,1715,title,Swiat-pokochal-polskiego-sportowca-Mimo-ze-ledwo-dukal-po-angielsku,wid,17449498,wiadomosc.html", 
  "description": "Kibice wstrzymali oddech, dos\u0142ownie. W sali s\u0142ycha\u0107 by\u0142o tykaj\u0105c\u0105 wskaz\u00f3wk\u0119 zegara zawieszonego na \u015bcianie. Przy stole sta\u0142 Bogdan Wo\u0142kowski, nieruchomo patrzy\u0142 na \u015brodek, gdzie znajdowa\u0142a si\u0119 wysoka piramida z\u0142o\u017cona z kilku poziom\u00f3w bil i tr\u00f3jk\u0105t\u00f3w. Na jej szczycie sta\u0142 cz\u0142owiek. Mija\u0142y kolejne sekundy, napi\u0119cie ros\u0142o. Nagle \"Wizard\" wzi\u0105\u0142 kij do r\u0119ki, przymierzy\u0142, hukn\u0105\u0142 w bil\u0119, ta uderzy\u0142a w piramid\u0119 i...", 
  "type": "article", 
  "title": "\u015awiat pokocha\u0142 polskiego sportowca. Mimo \u017ce ledwo duka\u0142 po angielsku", 
  "updated_time": "2015-04-14T19:46:03+0000", 
  "id": "1055320127830544"
 }, 
 "id": "http://sport.wp.pl/kat,1715,title,Swiat-pokochal-polskiego-sportowca-Mimo-ze-ledwo-dukal-po-angielsku,wid,17449498,wiadomosc.html"
}

{
 "1055320127830544": {
  "data": [], 
  "summary": {
   "total_count": 0
  }
 }
}

不幸的是,这些值与FQL API的结果不一致。

所以,我的问题是: 每个值的响应是什么意思,以及为什么它与FQL不一致?

1 个答案:

答案 0 :(得分:0)

这似乎是API的一个已知问题。您可以按this post进行更新。

这个post很好地解释了如何获得共享计数。

我还注意到,对于API 2.1及更高版本,响应中的share_count包含共享的总数,包括用户在时间轴上直接共享的链接。对于2.0版,我认为响应中的shares排除了这一点。