2012-03-14 10 views
10

Sto tentando di tirare fuori un feed RSS pagina da Facebook, ma ogni volta che tento di provare, ottengo un errore di nuovo in XML con il seguente:Facebook ha ucciso feed RSS pubblici; come ottenere un RSS della pagina Facebook con la nuova Timeline?

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

L'URL Sono utilizzando è:

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

non ho una limitazione di età fissato né una restrizione paese:
enter image description here

Inoltre, ho provato con e senza il mio token di accesso.

Come notato nei commenti qui sotto, l'URL JSON è infatti lavorando:

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

Che cosa sta succedendo qui/come posso risolvere il problema?

+0

Senza conoscere l'ID della pagina non c'è nulla che possiamo fare per vedere qual è il tuo problema - la pagina è accessibile su "https://graph.facebook.com/ "? – Igy

+1

Sì, che restituisce un [pezzo di json] (https://gist.github.com/raw/28fef2f0a3ebcbb201e6/4935d8320f37748b574bbcfdea5b3d176ca00a6e/gistfile1.txt) con le informazioni corrette. – ylluminate

+0

Interessante, il seguente mi dà effettivamente l'output JSON: 'https://graph.facebook.com/ /feed&https://www.facebook.com/ /feed? Access_token = ' – ylluminate

risposta

12

Ho avuto lo stesso problema. Dopo aver cercato una soluzione, ho scoperto che FB ha silenziosamente ucciso il supporto pubblico di RSS. (Vedi this post da Jesse Rimani)

ho capito che avevo bisogno di chiamare l'API me stesso e costruire il feed (ho anche bisogno di feed per essere analizzato da un plugin WP e altre cose.

Quindi, prima di tutto ottenere una chiave API (chiamato anche App ID) e scaricare il PHP Facebook SDK.

Poi scarica la classe Universal Feed Generator PHP. sarà generare tutte le intestazioni e XML necessario per voi.

script PHP sarà così:

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

Nota dal futuro (2013-07-09): Non ascoltare più la mia risposta. È vecchio. Facebook ha una nuova API con nuove funzionalità sul suo linguaggio di query, quindi non preoccuparti di tirare i feed. Prova ad usare le loro API in un modo più divertente e intelligente :)

+0

Grazie mille per questa illuminazione. Sei a conoscenza di eventuali lavori in corso su plugin WordPress al momento che hanno già integrato questo? – ylluminate

+0

No, lo so. Sto usando http://feedwordpress.radgeek.com/ ma per quello ho bisogno del feed come atom, rss o qualcosa del genere. Forse è una buona idea creare un plugin per WP =) – lu1s

+0

D'accordo, è un'opportunità primaria per qualcuno di scorrere questo panorama. – ylluminate

23

Ecco le mie indicazioni.

  1. Vai a Facebook e fare clic destro immagini di profilo per ottenere URL e copiare l'ID
  2. andate qui https://graph.facebook.com/ID_GOES_HERE
  3. prendere il valore ID che viene elencato nella pagina risultante e copiarlo
  4. Vai qui e incollare il nuovo ID https://www.facebook.com/feeds/page.php?id=ID_GOES_HERE&format=rss20
  5. Copia e incolla l'URL nel tuo lettore di feed
+0

Questa è una buona scoperta !! – jesal

+6

ottengo { ' "errore": { "messaggio": "Un token di accesso utente è tenuto a richiedere questa risorsa.", "type": "OAuthException", "codice": 102 } }' quando provo ad accedere all'URL del grafico (passaggio 2 sopra) con l'ID del profilo. Hanno limitato questo accesso o potrebbero essere correlati alle impostazioni sulla privacy? – Dan

+0

C'è un piccolo problema in questo approccio. La codifica dei caratteri per contenuti non in lingua latina. – SaidbakR

0

per un modo più semplice per trovare la pagina id :

È sufficiente visualizzare la sorgente per la pagina FB (o l'app della timeline, precedentemente nota come scheda) e cercare page_id. Sostituirlo con il codice fornito.

+0

Si prega di non inserire alcuna firma nei vostri testi - la vostra casella utente è proprio accanto ad essa comunque. – Sven

2

Due semplici passi per ottenere il feed RSS/Atom:

Questo URL genera un feed Atom, ma puoi cambiarlo

+0

collegamento non funzionante! dando -1 per quello –

+0

Quale? Entrambi stanno lavorando per me. Devi aggiungere l'id che hai ottenuto dal primo sito dopo "id =" nel secondo url, se questo è il tuo problema. – antou

+0

dando il mio ID fb al primo collegamento mostra sempre un messaggio di errore! –