我正在使用以下fql来查找是否喜欢页面:
$fql_query_url = 'https://graph.facebook.com/'
. 'fql?q=SELECT+uid,page_id+FROM+page_fan+WHERE+uid=me()+AND+page_id=' . $pageId
. '&access_token=' . $facebook->getAccessToken();
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
if($fql_query_obj['data'][0]['uid']!=''){
$isFan = true;
// echo "<h1> Is Fan </h1>";
} else {
$isFan = false;
}
//var_dump($isFan);
每次返回true时最后一行,即使在不喜欢使用页面标签后也是如此。
答案 0 :(得分:0)
我使用Graph API Explorer来查明page_id是否存在,它返回了空数据。然后我试图访问用户风扇的所有页面。我看到当前的页面ID已存在,它清楚地解释了图api存在一些问题。
我的问题的一个解决方案是遍历所有page_id并检查当前是否存在page_id。
请记住,您必须先将page_id转换为float。要在循环中匹配它,因为当不适合int时,facebook返回id为float。
if($fql_query_obj['data'][$i]['page_id']==(float)$pageId) // page is liked :)
第二种方法是通过在引号中引用page_id进行查询,即
$fql_query_url = 'https://graph.facebook.com/'
. 'fql?q=SELECT+uid,page_id+FROM+page_fan+WHERE+uid=me()+AND+page_id=\'' . $pageId
. '\'&access_token=' . $facebook->getAccessToken();