FQL查询返回0值

时间:2011-08-05 19:24:15

标签: php facebook facebook-fql

我使用以下代码尝试使用FQL检索页面的见解。显然我已经删除了App ID,App Secret,URL和Object ID(在FQL查询中)。

该页面正确登录用户,并要求提供“read_insights”权限。我以用户身份登录,该用户是我尝试访问的页面的管理员。

我得到的回应是:

Array ( [0] => Array ( [metric] => page_like_adds [value] => 0 ) ) 

我是FQL的新手,所以我确定我在这里做了一些蠢事。

<?php
require_once('facebook/src/facebook.php');
define('APP_ID', '');
define('APP_SECRET', '');

$facebook = new Facebook(array(
'appId'  => '',
'secret' => '',
'cookie' => true,
));

$app_id = "";
$app_secret = "";
$my_url = "";

session_start();
$code = $_REQUEST["code"];

if(empty($code)) {
  $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
  $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
  . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
  . $_SESSION['state'] . "&scope=read_insights";

  echo("<script> top.location.href='" . $dialog_url . "'</script>");
}

if($_REQUEST['state'] == $_SESSION['state']) {
  $token_url = "https://graph.facebook.com/oauth/access_token?"
  . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
  . "&client_secret=" . $app_secret . "&code=" . $code;

  $token = file_get_contents($token_url);
  $params = null;
  parse_str($token, $params);
} else {
   echo("");
}

$fql = "SELECT metric, value FROM insights WHERE object_id=OBJECT_ID AND        metric='page_like_adds' AND end_time=1272351600 AND period=86400";

$fqlresponse = $facebook->api(array(
'method' => 'fql.query',
'query' =>$fql,
));

print_r($fqlresponse);

?>

1 个答案:

答案 0 :(得分:0)

使用你的FQL:

$fql = "SELECT metric, value FROM insights WHERE object_id=OBJECT_ID AND        metric='page_like_adds' AND end_time=1272351600 AND period=86400";

您选择的是“page_like_adds”指标,即“喜欢您的网页内容”,直至“1272351600”,即“2010年4月27日星期二”。

所以我想,你的查询不是,你想要的。

您希望从页面中获取哪些指标?

我建议阅读:https://developers.facebook.com/docs/reference/fql/insights/(官方文档太FQL指标)

您也可以尝试使用Graph API来访问洞察:

https://developers.facebook.com/tools/explorer/