2010-06-15 50 views
4

這是一個棘手的問題,你如何得到一個facebook對象,如專輯或照片的計數?我知道Facebook有一個名爲link_stat的fql表,它允許你爲外部url獲得類似的計數,但如果對象在facebook內,它似乎不起作用。如果您通過特定對象上的opengraph api訪問喜歡,它將只返回最多4個喜歡該對象的用戶,即使可能有幾千個喜歡它的用戶。任何線索?如何通過fql查詢facebook對象的相似計數,例如相冊或照片?

+0

它不起作用,我已經試過了。看起來Facebook並不願意公開分享這些數據。 – dickyj 2010-09-30 15:58:22

+0

發佈你試過的代碼,因爲它適合我。 – Bot 2010-09-30 23:05:10

回答

1

我能夠通過更改隱私設置來做到這一點。如果您查詢XYZ用戶喜歡的表格,它將不會返回數據,除非用戶已將可見性設置爲朋友(用於照片,相冊,視頻,鏈接或筆記),無論您是否已經請求了權限(從您的應用程序中)。

因此,例如,我是XYZ用戶,我喜歡我的GHI發佈的某個鏈接。我使用爲Facebook開發的應用程序並允許訪問我的鏈接。現在,如果應用程序試圖訪問我在Facebook上喜歡的鏈接,那麼應用程序將無法獲取GHI(我喜歡)發佈的鏈接,除非GHI已將其與Friends的鏈接設置爲可見。

如果有人需要更多的幫助,然後再回到這個論壇。

問候, 哈龍

+0

感謝您的提示,將嘗試一下... – dickyj 2011-03-16 14:11:06

+0

haroon,用戶需要登錄的應用程序才能得到相似的數量?我的意思是oauth是必需的? – vks 2013-06-24 13:30:23

1
# fql query 
    $fql = "SELECT like_info FROM photo WHERE object_id=" . $photo_id; 

    # api request 
    $request = array(
    'method' => 'fql.query', 'query' => $fql 
    ); 

    # run batch request 
    $likeInfo = $facebook->api(array(
    'method' => 'fql.query', 'query' => $fql 
)); 

    var_dump($likeInfo);die; 
=> get like info of photo`enter code here` 
0

這些天,如果你知道你要查詢什麼類型後,您可以使用FQL。例如,如果你想知道喜歡有多少相片,您可以使用:

SELECT like_info FROM photo WHERE object_id = 414122065292107 

哪個返回如下:

{ 
    "data": [ 
    { 
     "like_info": { 
     "can_like": true, 
     "like_count": 1354, 
     "user_likes": false 
     } 
    } 
    ] 
} 

類似的方法對不同類型的內容存在,但它似乎不一致對我來說,看看FQL文檔。

https://developers.facebook.com/docs/reference/fql/

1

顯然,答案已經改變了很多,因爲你首先問的問題,但這裏的答案,因爲今天的。使用Facebook的圖形API,以找出如何獲取有關相簿的照片來自Facebook的信息:

https://graph.facebook.com/albumID/photos?fields=id,likes.summary(true),comments.summary(true)&after=XXXXXX&access_token=XXXXXX 

使用AJAX來發送GET請求:

$.ajax({ 
    dataType: "json", 
    method: "GET", 
    url: "https://graph.facebook.com/" + albumID + "/photos", 
    data: {fields: "id,likes.summary(true),comments.summary(true)", 
     limit: 100, 
     after: afterStr, 
     access_token: token}) 

變量「afterStr」是下一頁數據的ID。

然後將下面的計算我們從Facebook得到的喜好和意見:

var dArr = msg.data; 
var i = 0; 
for (i = 0; i < dArr.length; i++) { 
    like += dArr[i].likes.summary.total_count; 
    comment += dArr[i].comments.summary.total_count; 
} 

後使用ID的結果到您的HTML:

$("#likeID").html(like); 
$("#commentID").html(comment); 

工作demo here

希望這會有所幫助!