Is there any Facebook settings or browser settings or firewalls or browser plugins etc that can prevent a Facebook app from checking whether a user liked a certain page (user already gave permission to access basic information btw)? I tried 3 methods, but for some users the detection failed (or sometimes failed). Below are the methods I tested
FQL Query
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;
}
}
Graph 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;
}
}
But sometimes they failed. Anyone know why for some users, or sometimes the page like detection can fail?