通过开放图形和PHP为Facebook页面创建图表

时间:2013-10-01 06:10:30

标签: facebook facebook-graph-api facebook-php-sdk facebook-apps facebook-insights

我创建了一个FB应用程序,它授予用户以下权限: manage_pages 2. read_insights

通过使用该应用程序,用户可以在页面上创建新选项卡,并在必要时将其删除。 除此之外,我想让用户选择查看有关她创建标签的页面的一些基本统计数据。

例如,我想检索特定时间段内某个页面的页面浏览量。 为此,我使用了以下代码:

$today  = date("Y-m-d");
$until  = strtotime($today);
$since  = strtotime("2013-08-01");
$pageID = "123";

$page_info    = $facebook->api("/$pageID?fields=access_token");
$access_token = $page_info['access_token'];

$params = array(
        'access_token' => $access_token,
        'since' => $since, 
        'until' => $until, 
      );


$insights = $facebook->api("/{$pageID}/insights/page_views/", 
            "GET",
            $params
           );
print_r($insights);

问题是结果是......某种程度上是空的。更确切地说,我收到以下内容:

Array
(
    [data] => Array
        (
        )
    [paging] => Array
    (
 [previous]=>https://graph.facebook.com/123/insights/page_views/since=1370059200&until=1375329600
     [next]=>https://graph.facebook.com/123/insights/page_views/since=1380600000&until=1385870400
    )
)

当我使用相同的逻辑来接收我的应用程序的见解(不使用$ params数组中的$ token)时,我会收到正确的数据。

除此之外,我想知道是否有办法用这些数据创建图表(直接来自FB)。

THX, 安东尼

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。 返回的数组是空的,因为我忘了检查用户是否通过Facebook登录...

关于图表,我没有直接从facebook找到任何解决方案,所以我使用了Charts.js插件。