Facebook Facebook zabił publicznych kanałów RSS; jak uzyskać stronę Facebook RSS z nowej osi czasu?

Próbuję wyciągnąć kanał strony do RSS z Facebook, jednak za każdym razem, gdy próbuję go spróbować, dostaję błąd z powrotem w XML z następującym:

<![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;
]]>

Adres URL, którego używam to:

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

Nie mam ograniczeń wiekowych ani ograniczeń krajowych:
Tutaj wpisz opis obrazka

Co więcej, próbowałem z tokenem dostępu i bez niego.

Jak wspomniano w komentarzach poniżej, adres URL JSON rzeczywiście działa:

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

Co tu się dzieje / jak to zrobić rozwiązać problem?

Author: ylluminate, 2012-03-14

5 answers

Mam ten sam problem. Po szukaniu rozwiązania okazało się, że FB po cichu zabił obsługę publicznych kanałów RSS. (zobacz ten post od Jesse Stay)

Zrozumiałem, że muszę sam wywołać API i skonstruować kanał (potrzebuję również kanał do parsowania przez wtyczkę WP i inne rzeczy.

Więc, przede wszystkim uzyskać klucz API (zwany również app id) i pobrać PHP Facebook SDK.

Następnie pobierz Universal Feed Generator Klasa PHP. Będzie Wygeneruj wszystkie wymagane nagłówki i xml dla Ciebie.

Twój skrypt php będzie wyglądał następująco:

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();

Notka z przyszłości( 2013-07-09): nie słuchaj już mojej odpowiedzi. Jest stary. Facebook ma nowe API z nowymi funkcjami w języku zapytań, więc nie przejmuj się ciągnięciem kanałów. Staraj się używać ich API w bardziej zabawny, inteligentny sposób:)

 13
Author: lu1s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-09 16:20:13

Oto moje wskazówki.

  1. Przejdź do facebook i kliknij prawym przyciskiem myszy obraz profilu, aby uzyskać adres URL i skopiować ID
  2. Idź tutaj https://graph.facebook.com/ID_GOES_HERE
  3. Weź wartość ID, która jest wymieniona na stronie wynikowej i skopiuj ją
  4. Przejdź tutaj i wklej nowy identyfikator https://www.facebook.com/feeds/page.php?id=ID_GOES_HERE&format=rss20
  5. Skopiuj i wklej adres URL do czytnika kanałów
 23
Author: stacey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-22 01:56:39

Gdy nie ma ID strony do znalezienia na stronie źródłowej, znalazłem id poprzez link "Utwórz stronę", jak w

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

Ahhhh... tak dobrze mieć moje kanały rss z powrotem! Dziękuję wszystkim! : D

 2
Author: tona b,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-23 06:29:38

Dwa proste kroki, aby uzyskać kanał RSS / Atom:

Ten adres URL generuje kanał Atom, ale można go zmienić.

 2
Author: antou,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-22 20:12:24

Aby łatwiej znaleźć ID strony:

Wystarczy wyświetlić źródło strony FB (lub aplikacji na osi czasu, wcześniej znanej jako tab) i wyszukać page_id. Zastąp go dostarczonym kodem.

 0
Author: Michelle Dear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-11 08:26:52