无法检测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
connection对user
的行为方式相同。
您需要您的用户授予user_likes
权限,以便能够检查用户是否喜欢特定页面(否则会出现您无法获得该信息的情况)。
以上是关于无法检测Facebook的页面的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模块化代码片段中的LeakCanary检测内存泄漏?