1

我正在尝试从特定的 facebook 页面中获取见解,但这并不重要,哪个用户请求该页面。但我不知道该怎么做。

我编写了这段代码,以通过在 Graph explorer 中生成的 user-accessToken 获得洞察力。

require 'facebook/src/facebook.php';

$facebook = new Facebook(array(
        'appId' => '551080774957462',
        'secret' => 'f821960b551440b80eecd2dc0a0eff2e',
    ));

//AccessToken from Graph explorer
$user_access_token = "CAAH1NH3VeZAYBAGbEZAeMgwwLOxKKmUqtUtbXT6kaO........";

$facebook->setAccessToken($user_access_token);

$facebook->getUser();

//Gets all pages
$user_accounts = $facebook->api("/me/accounts/");

$pageAccessToken = "";

//Find the right page
foreach ($user_accounts["data"] as $page)
    if ("476015619078252" == $page["id"])
        $pageAccessToken = $page["access_token"];

$facebook->setAccessToken($pageAccessToken);

$insights = $facebook->api("/476015619078252_$postID/insights");

问题在于,来自 Graph explorer 的 AccessToken 总是在几个小时后过期。

谢谢 !

4

1 回答 1

1

我认为您可以使用用户令牌而不是页面令牌

<?php
      require 'src/facebook.php';

      $facebook = new Facebook(array(
         'appId'  => 'APP_ID_HERE',
         'secret' => 'SECRET_HERE',
      ));

      $fbID = $facebook->getUser();

      $pages = $facebook->api('/me/accounts');

      $pageID = $pages['data'][0]['id'];

      $insights = $facebook->api('/'.$pageID.'/insights');

      echo '<pre>';
      print_r($insights);
      exit;
?>

您可以传递参数 since 以获得特定的日期范围结果..

干杯。

于 2013-09-22T11:51:10.787 回答