2014-04-27 39 views
0

我開發了這段代碼,當我使用我的登錄ID對其進行測試時,它運行良好。當其細節別人登錄就顯示錯誤(沒有數據獲取通過(FQL) 的代碼是:來自FQL的洞察細節的空白陣列

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

$user = $facebook->getUser(); 

$loginUrl = $facebook->getLoginUrl(
      array(
       'scope'   => 'offline_access,email,manage_pages,read_insights' 
      ) 
    ); 


$pid = $_GET['pageid']; 
echo $pid; 
echo "<br /><br />"; 

$total_fans = $facebook->api(
    "/".$pid."/insights/page_fans" 
); 

echo "This page has total " . $total_fans[data][0][values][0][value] . "likes (unique)."; 

echo "<br /><br />"; 

$fans_country = $facebook->api(
    "/".$pid."/insights/page_fans_country" 
); 
if(empty($fans_country)){ 
    echo "<p>No country specific data retrieved..</p>"; 
} else { 
    echo "<p>Countryvise like counts :</p> "; 
    foreach ($fans_country[data][0][values][0][value] as $key => $value) { 
      echo "<span style='float: left; width: 50px; background: #DCDCDC;'> ". $key ."</span> 
      <span style='float: left; width: 50px;'>" . $value ."</span> 
      </tr>"; 
    } 
    echo "<br /><br />"; 
} 

它的工作原理是,當我和我的FB帳號登錄,它會顯示的頁面中,我的ID作爲管理員,然後爲每個頁面它會爲我取總像數和象數countrywise。 沒關係,但是當其賬戶別人登錄其返回空數組。

感謝

+0

我不知道你遍歷所有頁面...其他人只會看到一些信息,如果他們自己管理頁面。 – Tobi

+0

順便說一下,offline_access權限已經過時了! – Tobi

+0

感謝tobi您的意見,基本上我循環在我的索引文件中,我獲取用戶管理的所有頁面,它工作完美,並從那裏我傳遞頁面id作爲變量到此頁面。 – techansaari

回答

0

我想你」請求不存在的權限"insights" ...文檔在https://developers.facebook.com/docs/graph-api/reference/page/insights/

read_insights用戶或頁面訪問令牌權限是必需的

爲了得到一個頁面訪問令牌的用戶頁,用

GET /me/accounts 
+0

我使用: $ loginUrl = $ facebook-> getLoginUrl( 陣列( '範圍'=> 'offline_access,電子郵件,manage_pages,read_insights' ) ); 它是不夠的,還是我不得不做一些其他的電話來獲得這種權限。 – techansaari

+0

offline_access已棄用,您問題中的示例代碼顯示「洞察」(不存在的權限)而不是「read_insights」! – Tobi

+0

我現在在使用read_insights,能否請你告訴我如何獲取頁面訪問令牌,而我有用戶訪問令牌,而登錄時,我也嘗試用我的appId + | +我的直接ID作爲標記,但沒有機會:(。謝謝你的類努力。 – techansaari