2012-03-26 17 views
0

是否有任何Facebook設置或瀏覽器設置或防火牆或瀏覽器插件等可以阻止Facebook應用程序檢查用戶是否喜歡某個頁面(用戶已授權訪問基本信息btw) ?我嘗試了3種方法,但對於某些用戶來說,檢測失敗(或者有時失敗)。下面是我測試無法檢測到Facebook一樣的頁面

方法FQL查詢

public function getLikedUser($user_id, $page_id){ 
    $result = $this->facebookObject()->api(array(
    "method" => "fql.query", 
    "query" => "SELECT uid FROM page_fan WHERE uid=$user_id AND page_id=$page_id" 
)); 

    if(count($result)){ 
    return true; 
    }else{ 
    return false; 
    } 
} 

REST API

public function getLikedUser($user_id, $page_id){ 

    $like = $this->facebookObject()->api($user_id.'/likes/'.$page_id); 

    if(!empty($like['data'])){ 
    return true; 
    } else { 
    return false; 
    } 
} 

圖形API

public function getLikedUser($user_id, $page_id){ 
    $like = file_get_contents("https://graph.facebook.com/".$user_id."/likes/".$page_id."&access_token=".$this->facebookObject()->getAccessToken()); 
    $likeD = json_decode($like); 
    if(!empty($likeD->data)){ 
    return true; 
    } else { 
    return false; 
    } 
} 

但有時他們失敗了。任何人都知道爲什麼對於某些用戶,或有時像檢測頁面可能會失敗?

回答

0

如文檔page_fan表所述:

要閱讀page_fan表,則需要

  • 任何有效access_token如果它是公共的(可見在Facebook上的人)。
  • user_likes權限是否查詢當前用戶。
  • friends_likes權限,如果查詢用戶的朋友。

likes connectionuser的工作方式。

您需要您的用戶授予user_likes權限才能檢查用戶是否喜歡特定頁面(否則會出現您無法獲取該信息的情況)。