2013-07-25 6 views
1

Я пытаюсь получить информацию из конкретной страницы facebook, но это не имеет значения, какой пользователь запрашивает эту страницу. , но я не могу понять, как это сделать.Получить представление о конкретной странице

Я сделал этот код, чтобы получить информацию с помощью user-accessToken, сгенерированного в Graph explorer.

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 из Graph explorer всегда истек через несколько часов.

Спасибо!

+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 так, чтобы получить конкретный результат диапазона дат ..

Приветствия.

Смежные вопросы