Подтвердить что ты не робот

Получите настенный канал с общедоступной страницы Facebook с помощью Graph API - действительно ли это сложно?

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

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

Я прав, полагая, что мне нужна access_token, чтобы получить эту информацию, пытаясь получить доступ к URL без каких-либо ошибок OAuth.

Итак, поток должен быть таким (массово, чрезмерно сложным):

  • Аутентификация с использованием пользователя (что, если пользователь не находится на Facebook?)
  • Некоторая сложная абсурдность OAuth - просто чтобы прочитать фид, я даже не хочу, чтобы функция кнопки или сообщения на стене была
  • Получить канал с помощью PHP-запроса на правильный URL-адрес с помощью пользователя access_token
  • Отправлять фид

Предполагая, что пользователь не на Facebook, что вы делаете, используйте универсальное приложение для получения фида?

  • Hardcode - запрос auth для Facebook с использованием моего общего идентификатора приложения и секретного
  • Некоторая сложная абсурдность OAuth
  • Получить фид с помощью PHP-запроса на правильный URL-адрес с помощью приложения access_token
  • Отправлять фид
  • О нет, auth истек, повторно авторизовался и захватил этот новый access_token для использования в будущих запросах.

Это кажется действительно сложным, поскольку никакая другая причина, кроме того, что Facebook хочет знать ВСЕ, что происходит, было бы проще сделать cURL и очистить контент от общедоступного URL с помощью XPath.

Любая помощь по этому поводу была бы большой.

Спасибо, Джейк

ИЗМЕНИТЬ

Редактирование, чтобы показать это, не является точным дубликатом.

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

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

Кажется, что ручной процесс утверждения запроса OAuth означает, что невозможно запрограммировать фид публичной страницы.

4b9b3361

Ответ 1

Два года спустя вы можете программно сделать это с помощью приложения Facebook (пример с использованием PHP и Slim): https://developers.facebook.com/apps/

$base_api="https://graph.facebook.com/";
$client_id="XXXXXX";
$app_secret="XXXXXX";

//get a profile feed (can be from a page, user, event, group)
$app->get('/feed/:profileid/since/:start_date', function ($profile_id,$start_date) {

    $start_time=date('m/d/Y h:i:s',$start_date);

    $request = new FacebookRequest(
      getSession(),
      'GET',
      '/'.$profile_id.'/feed?since='.$start_time
    );

    $response = $request->execute();
    $graphObject = $response->getGraphObject();

    //do something with $graphObject

});


function getSession(){
    $session = new FacebookSession(getAccessToken());
    return $session;
}


function getAccessToken(){
    global $base_api, $client_id, $app_secret;
    $url=$base_api."oauth/access_token?client_id=".$client_id."&client_secret=".$app_secret."&grant_type=client_credentials";
    $str = file_get_contents($url);
    $token = str_replace ( "access_token=" , "" , $str );
    return $token;
}

Ответ 3

Facebook изменил способ получения общедоступного фида на странице Facebook, так как другие ответы были опубликованы.

Просмотрите мой ответ/вопрос. Это не PHP, но он предоставляет URLs и процесс, который вам нужен.