Получить последнее сообщение со страницы Facebook (канал)

Я пытаюсь получить последнюю запись в Facebook со страницы Facebook. Я работаю с Facebook php SDK v4 ( https://github.com/facebook/facebook-php-sdk-v4/).

Я добавил библиотеку (php sdk) для композитора: composer require facebook/php-sdk-v4, Мой appid / секрет приложения и идентификатор страницы верны.

$config = array();
$config['app_id'] = 'myappid';
$config['app_secret'] = 'myappsecret';

$facebook = new \Facebook\Facebook($config);

$pageid = 'mypageid';

try {

    $pagefeed = $facebook->api("/" . $pageid . "/feed");
}
catch(Exception $ex){
    echo $ex->getMessage(); die;
}

Проблема в том, что я получаю сообщение об ошибке Вызов неопределенного метода Facebook \ Facebook:: api (). Когда я ищу в других темах онлайн, они часто этим пользуются. Но что я делаю не так?

1 ответ

Согласно документации вы можете получить фид страниц, используя следующий код:

$request = new FacebookRequest(
  $fbApp,
  '{access-token}',
  'GET',
  '/{page-id}/feed'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */

Источник: https://developers.facebook.com/docs/graph-api/reference/v2.5/page/feed

Обратите внимание, что в примерах на этой странице по умолчанию используются версии HTTP, а не PHP SDK.

Изменить: Добавлены правильные параметры для функции FacebookRequest.

Требуется токен доступа и $app экземпляр, как показано ниже.

Facebook\FacebookRequest($fbApp, '{access-token}', 'GET', '/{page-id}/feed');

Токен доступа может быть создан с помощью getAccessToken() функционировать, как показано ниже.

$access_token =  $facebook->getAccessToken();
$facebook->setAccessToken($access_token);

В V4 API использовалась система сеансов, которую можно найти здесь: https://developers.facebook.com/docs/php/FacebookSession/4.0.0

Создайте переменную сеанса Facebook, и затем вы можете использовать это $session в оригинальном v4 методе запроса.

$request = new FacebookRequest(
  $session,
  'GET',
  '/{page-id}/feed'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
Другие вопросы по тегам