2013-07-25 85 views
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"); 

這樣做的問題是,圖形瀏覽器的AccessToken會在幾個小時後過期。

謝謝!

+1

爲什麼不使用長壽命的令牌?這是記錄在這裏:https://developers.facebook.com/docs/facebook-login/access-tokens/ – Igy

+0

感謝您的答案:) 你知道多久的時間長壽命令牌生活? :) –

+1

長達60天不需要續訂 - 使用長壽命用戶訪問令牌獲取的頁面訪問令牌也將無限期地保持活動狀態 – Igy

回答

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; 
?> 

你可以通過PARAMS因爲得到具體日期範圍結果頁面的..

乾杯。

相關問題