无法检测Facebook的页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法检测Facebook的页面相关的知识,希望对你有一定的参考价值。

是否有任何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;
  }
}

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

答案

page_fan表的文档中所述:

要阅读您需要的page_fan表

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

likes connectionuser的行为方式相同。

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

以上是关于无法检测Facebook的页面的主要内容,如果未能解决你的问题,请参考以下文章

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

Facebook 登录页面为空,无法加载

Facebook API 无法将流式音频上传到页面墙

Facebook状态回调不适用于片段

Facebook 使用 HybridAuth 登录显示错误您无法直接访问此页面

带有边距和页面转换器的片段内的 ViewPager 无法正确呈现