2015-03-13 2 views
1

В конечном счете, я пытаюсь отобразить публичный фид на facebook на веб-сайте, принадлежащем владельцу страницы Facebook.График Facebook api: сообщения страниц возвращают пустые данные

Я использую PHP SDK 4.0, пытаясь вытащить пару сообщений со страницы из графика api v2.2.

Я установил приложение на developers.facebook.com, я использую секрет приложения и приложение для настройки приложения по умолчанию.

Метод, который я использую ниже, чтобы получить токен доступа, возвращает токен доступа к приложениям.

// Skip these two lines if you're using Composer 
define('FACEBOOK_SDK_V4_SRC_DIR', __ROOT__.'/facebook/src/Facebook/'); 
require __ROOT__ . '/facebook/autoload.php'; 

session_start(); 
use Facebook\FacebookSession; 
use Facebook\FacebookRequest; 
use Facebook\GraphUser; 
use Facebook\GraphPage; 
use Facebook\FacebookRequestException; 
use Facebook\FacebookRedirectLoginHelper; 

$page_id = "pageID"; 
$app_id = "appID"; 
$app_secret = "appSecret"; 

FacebookSession::setDefaultApplication($app_id, $app_secret); 

// Get access token 
$access_token = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id={$app_id}&client_secret={$app_secret}&grant_type=client_credentials"); 
$access_token = substr($access_token, strpos($access_token, "=") + 1); 

// Start new session 
$session = new FacebookSession("$access_token"); 


// Get the GraphUser object for the current user: 

try { 
    $request = new FacebookRequest($session, 'GET', "/{$page_id}/posts"); 
    $response = $request->execute(); 
    $graphObject = $response->getGraphObject(); 
    var_dump($graphObject); 
} catch (FacebookRequestException $e) { 
    echo $e; 
    // The Graph API returned an error 
} catch (\Exception $e) { 
    // Some other error occurred 
} 

И мой код, и ввести эту информацию в URL

https://graph.facebook.com/v2.2/pageID/feed?access_token=accessToken 

возвращает

{ 
    "data": [ 

    ] 
} 

Кто-нибудь знает, почему набор данных пуст? Как я могу получить публичные сообщения страницы без необходимости спрашивать посетителя сайта для аутентификации?

ответ

0

Это все в документации, вы знаете:

Право доступ

  • маркер доступ необходим для просмотра общедоступных сообщений.
  • Для доступа к сообщениям, видимым для этого лица, требуется токен доступа пользователя.
  • Для получения любых других сообщений требуется токен доступа к странице.

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

+0

Означает ли это, что невозможно отобразить сообщения на странице, не спрашивая у каждого посетителя веб-сайта доступ к приложению? – GDT

+0

Вы также должны создать вечный токен доступа к странице и сохранить его в своем приложении. На эту тему есть много ответов. Используйте поиск. – Tobi

+0

Да, конечно. Мне нужны имя пользователя и пароль моих клиентов. Или я должен был бы быть добавлен в качестве менеджера на их страницу (головная боль все сама по себе). Если я когда-нибудь потеряю управление, тогда ключ потерян? Я искал более программный способ решить эту проблему. Я единственный другой способ серьезно спросить посетителя, хотят ли они показать поток Facebook? – GDT

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