2015-06-14 6 views
1

Мне кажется, что я был на всей документации в facebook, а также часы поиска в Google, и я не могу понять это. Многое из того, что я нашел, - это годы; до того, как Facebook перешел на другую версию API, поэтому я запутался в тонне вещей.Facebook API PHP, получить фид страницы

Кажется, у моих бизнес-страниц уже есть приложения, созданные для них, поэтому все, что я пытаюсь сделать, это получить канал со страницы. Вот мой код до сих пор, и я просто хотел бы знать, что делать дальше.

$facebookAPP_ID = 'THERE IS A VALID ID'; 
$facebookAPP_SECRET = 'THERE IS A VALID SECRET'; 

require 'facebook/autoload.php'; 

use Facebook\FacebookSession; 
use Facebook\FacebookRequest; 
use Facebook\GraphUser; 
use Facebook\FacebookRequestException; 

FacebookSession::setDefaultApplication($facebookAPP_ID, $facebookAPP_SECRET); 
$session = FacebookSession::newAppSession($facebookAPP_ID, $facebookAPP_SECRET); 

try { 
    $session->validate(); 
} catch (FacebookRequestException $ex) { 
    // Session not valid, Graph API returned an exception with the reason. 
    echo $ex->getMessage(); 
} catch (\Exception $ex) { 
    // Graph API returned info, but it may mismatch the current app or have expired. 
    echo $ex->getMessage(); 
} 

Doing $session->getToken() получает маркер, который здорово, но я хочу данных.

Следующий код непосредственно после ошибки дает следующее сообщение. Активный токен доступа должен использоваться для запроса информации о текущем пользователе.:

try { 
    $response = (new FacebookRequest($session, 'GET', '/me'))->execute(); 
    $object = $response->getGraphObject(); 
    echo $object->getProperty('name'); 
} catch (FacebookRequestException $ex) { 
    echo $ex->getMessage(); 
} catch (\Exception $ex) { 
    echo $ex->getMessage(); 
} 

Я читал, что нет «/ я» для страниц, так что правильный вызов, чтобы получить корм страницы?

+0

'/ me' работает и для страниц, но только если используется токен доступа к странице. Поскольку вы использовали токен доступа к приложениям, API не имел возможности узнать, кто/что «я» должен был быть здесь. – CBroe

+0

Спасибо за разъяснение @CBroe. –

ответ

3

Кажется, что Facebook просто шепчет эту часть в своей документации; that you can authenticate using only the ID and Secret, так что этот вызов по cURL работает для меня без необходимости использования какого-либо кода выше (с правильными значениями, конечно).

'https://graph.facebook.com/'.$facebookPageId.'/posts?&access_token='.$facebookAppId.'|'.$facebookAppSecret; 

И я в состоянии получить ID Facebook here.

+0

Хотелось бы, чтобы я мог увеличить это миллион раз. – JakeParis

0

Правильный вызов API для подачи страницы будет /page-id/feed. Вы также можете использовать /page-id/posts или некоторые другие конечные точки, как вы можете прочитать в документах.

Это прекрасно работает с токеном доступа к приложениям для не ограниченных страниц. Если он ограничен по возрасту или стране, вам нужен токен страницы или пользователя.