Php FQL不像保持显示页面那样是真的

Php FQL不像保持显示页面那样是真的,php,api,facebook-fql,facebook-php-sdk,Php,Api,Facebook Fql,Facebook Php Sdk,我使用以下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_cont

我使用以下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);
$fql\u query\u url=”https://graph.facebook.com/'
. 'fql?q=SELECT+uid,page_id+FROM+page_fan+WHERE+uid=me()+和+page_id='$页面ID
. '&访问令牌='$facebook->getAccessToken();
$fql\u query\u result=file\u get\u contents($fql\u query\u url);
$fql\u query\u obj=json\u decode($fql\u query\u result,true);
如果($fql_query_obj['data'][0]['uid']!=''){
$isFan=true;
//回声“是扇”;
}否则{
$isFan=false;
}
//var_dump($isFan);
每次的最后一行返回true,即使在不喜欢使用page tab之后。

我曾经检查page_id是否存在,它返回空数据。然后我尝试访问所有的页面用户是范。我看到当前的页面id在那里,它清楚地解释了graph api存在一些问题

我的问题的一个解决方案是循环遍历所有页面id,并检查其中是否存在当前页面id

请记住,您必须首先将page_id转换为float。要在循环中匹配它,当不适合int时,facebook将id作为float返回

if($fql_query_obj['data'][$i]['page_id']==(float)$pageId) // page is liked :)
第二种方法是通过在引号中引用您的页面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();