Facebook убил Публичные RSS-каналы;как получить страницу Facebook RSS с новой временной шкалой? - PullRequest
12 голосов
/ 14 марта 2012

Я пытаюсь вытащить фид страницы в RSS из Facebook, однако каждый раз, когда я пытаюсь это сделать, я получаю сообщение об ошибке в XML-файле со следующим:

<![CDATA[
This feed URL is no longer valid. Visit this page to find the new URL, if you have access: &lt;a href=&quot;https://www.facebook.com/profile.php?id=<FB_ID>&quot;&gt;https://www.facebook.com/profile.php?id=<FB_ID>&lt;/a&gt;
]]>

URLЯ использую это:

https://www.facebook.com/feeds/page.php?id=<fb_id>&format=rss20&access_token=<my_page_token>

У меня нет ни возрастных ограничений, ни страновых ограничений:
enter image description here

Далее я пробовал сбез моего токена доступа.

Как отмечается в комментариях ниже, URL JSON действительно работает:

https://graph.facebook.com/<page_name>/feed&https://www.facebook.com/<page_name>/‌​feed?access_token=<token>

Что здесь происходит / как мне решить проблему?

Ответы [ 5 ]

23 голосов
/ 04 мая 2012

Вот мои указания.

  1. Перейдите на Facebook и щелкните правой кнопкой мыши изображение профиля, чтобы получить URL-адрес и скопировать идентификатор
  2. иди сюда https://graph.facebook.com/ID_GOES_HERE
  3. Возьмите значение идентификатора, которое указано на странице результатов, и скопируйте его
  4. Перейдите сюда и вставьте новый идентификатор https://www.facebook.com/feeds/page.php?id=ID_GOES_HERE&format=rss20
  5. Скопируйте и вставьте URL-адрес в программу чтения каналов
13 голосов
/ 20 марта 2012

Я получил с той же проблемой.После поиска решения я обнаружил, что FB молча убил публичную поддержку RSS.(см. этот пост от Джесси Стэй)

Я понял, что мне нужно самому вызвать API и создать канал (мне также нужно, чтобы канал анализировался плагином WP и другими вещами.

Итак, прежде всего получите ключ API (также называемый идентификатором приложения) и загрузите PHP Facebook SDK.

Затем загрузите класс Universal Feed Generator PHP.Он сгенерирует все необходимые заголовки и xml для вас.

Ваш php-скрипт будет выглядеть следующим образом:

require('lib/facebook.php'); // require your facebook php sdk
include("feed_generator/FeedWriter.php"); // include the feed generator feedwriter file

$fb = new facebook(array(
    'appId' =>  'YOUR_APP_ID', // get this info from the facebook developers page
    'secret'=>  'YOUR_SECRET_KEY' // by registering an app
));
$response = $fb->api('/spreetable/feed','GET'); // replace "spreetable" with your fb page name or username

// create the feedwriter object (we're using ATOM but there're other options like rss, etc)
$feed = new FeedWriter(ATOM);

$feed->setTitle('Spree Table'); // set your title
$feed->setLink('http://spreetable.com/facebook/feed.php'); // set the url to the feed page you're generating

$feed->setChannelElement('updated', date(DATE_ATOM , time()));
$feed->setChannelElement('author', array('name'=>'Spree Table')); // set the author name

// iterate through the facebook response to add items to the feed
foreach($response['data'] as $entry){
        if(isset($entry["message"])){
            $item = $feed->createNewItem();
            $item->setTitle($entry["from"]["name"]);
            $item->setDate($entry["updated_time"]);
            $item->setDescription($entry["message"]);
            if(isset($entry["link"]))
                $item->setLink(htmlentities($entry["link"]));

            $feed->addItem($item);
        }
}

// that's it... don't echo anything else, just call this method
$feed->genarateFeed();

Примечание из будущего (2013-07-09): непослушайте мой ответ. Он устарел. У Facebook появился новый API с новыми функциями на языке запросов, так что не тратьте время на фиды. Попробуйте использовать их API более увлекательным и интеллектуальным способом:)

2 голосов
/ 23 декабря 2013

Два простых шага для получения канала RSS / Atom:

Этот URL генерирует канал Atom, но вы можете изменить его.

2 голосов
/ 23 июля 2012

Когда на исходной странице нет идентификатора страницы, я нашел идентификатор по ссылке «создать страницу», как в

https://www.facebook.com/pages/create.php?ref_id=the_#_here

аааа ... так хорошо, что мой RSS-канал возвращается! Спасибо всем! : D

0 голосов
/ 20 июля 2012

Для более простого способа найти идентификатор страницы:

Просто просмотрите источник для вашей страницы FB (или приложение временной шкалы, ранее известное как вкладка) и найдите page_id. Замените его на предоставленный код.

...