2011-10-18 54 views
3

嘿所有,Facebook圖形API和FQL像照片上的計數都不正確?

我做了一個比賽,它允許用戶上傳他們的照片一個Facebook應用程序。上傳後,照片會發布到他們個人資料中的專用相冊中。一旦照片出現,用戶應儘可能多地收集照片。

目前我已經嘗試使用Facebook Graph API和Facebook FQL來檢索喜歡的數量,但檢索到的喜歡並不總是與用戶個人資料中的喜歡匹配。

一些用戶聲稱擁有200多個喜歡,但迄今爲止API只返回了最多101個喜歡。


所有用戶都被要求批准該申請以下權限:

user_hometown, publish_stream, read_stream, user_photos and offline_access 


使用Facebook PHP SDK 3.0.1我想這FQL查詢收取的金額喜歡一張照片:

# fql query 
    $fql = "SELECT object_id FROM like WHERE object_id=" . $photo_id; 

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

    # run batch request 
    $likes = $this->facebook->api($request); 

    # return like count 
    return count($likes); 


我還嘗試了以下圖形API請求(也與Facebook PHP SDK 3.0.1)收集相片的喜歡的量:

$likes = $this->facebook->api($photo_id.'/likes'); 
return count($likes['data']); 


奇怪的是,既不似乎會返回正確的結果。我可以理解,如果API稍微不準確,但根據API,一些圖片今天早上收到100個喜歡,然後0喜歡幾個小時後。

有沒有人有任何想法我可能會做錯什麼?照片和相冊是否需要公開?喜歡這張照片的人是否需要公開介紹才能在API中出現?我是否需要額外的權限?

任何幫助或建議將不勝感激!

回答

1

剛剛在這裏有同樣的問題。這些喜歡似乎由數百默認分頁。使用「LIMIT」查詢選項覆蓋此設置。

+1

的信息,這不是一個解決方案,Facebook並沒有給出準確的結果一樣的照片//註釋喜歡,在我自己的經驗,他們似乎停留在大約4000,其他一切都被忽略 – almosnow

0
# 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; 

=>得到這樣的照片