FQL查询通过粉丝页面ID获取粉丝页面名称返回null

时间:2013-10-25 05:50:12

标签: php json facebook facebook-graph-api facebook-fql

突然间,FQL查询不起作用,我有这么多个月的代码并保持运行,现在它不起作用,甚至我以前的项目都有这个代码出错。

例如, 我有一个名为示例页面一的粉丝页面名称,其ID为 540109632726307

所以,我想要的是,使用粉丝页面ID检索粉丝页面的名称

查询

https://graph.facebook.com/fql?q=SELECT+name+FROM+page+WHERE+page_id=540109632726307

代码

$fbp_id = 540109632726307; //Sample FB ID

$fql_query_url = 'https://graph.facebook.com/'.'fql?q=SELECT+name+FROM+page+WHERE+page_id= '.$fbp_id.'';
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);

var_dump($json_output);

当我运行代码时,它会导致 NULL ,它不像以前那样。 facebook更新了fql查询的东西吗?我似乎也无法找到有关它的任何消息。

但是,当我将此链接运行到浏览器时,

https://graph.facebook.com/fql?q=SELECT+name+FROM+page+WHERE+page_id=540109632726307

它显示我所做的fql查询的结果

{
   "data": [
      {
         "name": "Sample Page One"
      }
   ]
}

这是一个有效的网址。我的代码有问题吗?

2 个答案:

答案 0 :(得分:1)

三件事 -

  1. fb_id定义为:

    $fbp_id = "540109632726307"
    

    (因为它是一个大整数)

  2. = 之后不留空格:

    page_id= '.$fbp_id
    
  3. 没有变量$json_output,而是在$fql_query_obj中使用var_dump

  4. 所以你的代码看起来像是:

    $fbp_id = "540109632726307"; //Sample FB ID
    $fql_query_url = 'https://graph.facebook.com/'.'fql?q=SELECT+name+FROM+page+WHERE+page_id='.$fbp_id.'';
    $fql_query_result = file_get_contents($fql_query_url);
    $fql_query_obj = json_decode($fql_query_result, true);
    
    var_dump($fql_query_obj);
    

    试试这个。

答案 1 :(得分:0)

为什么在$ fql_query_url中连接两个字符串?它可能只是一个字符串。 您也不需要在最后连接单引号。

您是否尝试通过api.facebook.com网址获取文件?

e.g。

$fbp_id = "540109632726307"; //Sample FB ID
$fql_query_url = 'https://api.facebook.com/method/fql.query?query=SELECT+name+FROM+page+WHERE+page_id='.$fbp_id;
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
var_dump($fql_query_obj);

Facebook非常紧随其后。有时候事情可以使用graph.facebook.com,有时你需要使用api.facebook.com。