无法检测Facebook的页面

问题描述 投票:0回答:1

是否有任何Facebook设置或浏览器设置或防火墙或浏览器插件等可以阻止Facebook应用程序检查用户是否喜欢某个页面(用户已经允许访问基本信息btw)?我尝试了3种方法,但对于某些用户来说,检测失败(或有时失败)。以下是我测试的方法

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;
  }
}

但有时他们失败了。任何人都知道为什么对某些用户,或有时像检测的页面可能会失败?

php facebook facebook-graph-api facebook-like facebook-fql
1个回答
0
投票

page_fan表的文档中所述:

要阅读您需要的page_fan表

  • 任何有效的access_token,如果它是公开的(Facebook上的任何人都可以看到)。
  • user_likes权限查询当前用户。
  • friends_likes权限,如果查询用户的朋友。

likes connectionuser的行为方式相同。

您需要您的用户授予user_likes权限,以便能够检查用户是否喜欢特定页面(否则会出现您无法获得该信息的情况)。

© www.soinside.com 2019 - 2024. All rights reserved.