2010-08-05 5 views
15

Desidero collegarmi a una pagina pubblica di Facebook o raggruppare ed elencare tutte le voci dal muro su un sito web personale. Userò PHP sul mio server in modo che sarebbe la soluzione migliore per me. O javascript.Ottieni dati da una parete di una pagina Facebook o da un muro di gruppo da utilizzare sul sito web personale

Qualcuno potrebbe spiegare o forse fornire un codice funzionante su come farlo? O solo tutti i passaggi necessari per farlo?

Se è possibile gestire informazioni su persona, data, descrizione ... per ogni post, sarebbe fantastico! Quindi il mio layout potrebbe essere personalizzato.

Grazie per avermi aiutato qui!

risposta

0

Quello che stai parlando, per quanto posso dire, è Web Scraping. Quello che vorresti fare è ottenere l'URL del gruppo, utilizzare il comando file_get_contents ($ url) in PHP per ottenere il file e quindi analizzarlo in PHP.

Suggerirei di spazzolare le espressioni regolari per questo, poiché sarà importante rivedere l'HTML che Facebook utilizza per i messaggi a muro. Sarai in grado di ottenere le informazioni che stai cercando dall'HTML.

Vorrei postare qualche codice di esempio, ma è su un altro computer, molto lontano. Comunque, dovrebbe essere un buon inizio.

Edit: L'aggiunta in qualche codice di esempio:

$URL = "http://facebook.com/group=5343242" (or whatever the URL structure is for the facebook group) 
$groupPage = file_get_contents($URL) 

Ecco il link alle pagine PHP sulle espressioni regolari:

http://www.php.net/manual/en/book.pcre.php

+0

Interessante. Mi piacerebbe vedere un esempio di questo tipo di soluzione, e controllerò il link che hai postato. – user412264

+0

Penso che la cosa migliore da fare sia controllare l'API come suggerito dagli altri. Probabilmente il mio suggerimento implicherà molto più lavoro per te rispetto agli altri. – Althane

+0

Ok tnx. Ancora un pensiero inteserting che hai lì :) – user412264

4

è necessario eseguire FQL su stream table e fornire id una pagina o un gruppo a cui sei interessato come source_id (i documenti fb hanno alcune spiegazioni ed esempi). Una volta ottenuti i dati di streaming, puoi scavare più a fondo e ottenere utenti che hanno lasciato questo post o qualsiasi altro dato di cui hai bisogno nuovamente attraverso FQL.

Esistono molti modi per eseguire FQL - potrebbe essere fatto in API JS, API PHP o tramite la vecchia API REST.

+0

Questo suona come la soluzione migliore. Hai tempo di darmi un esempio funzionante su come connettermi a una pagina o un gruppo e restituire una struttura xml del muro? Io uso PHP. Hai bisogno di includere qualche tipo di file facebook con metodi di lavoro? Grazie per l'aiuto – user412264

+0

@ user412264 Se non si ha familiarità con l'API di facebook, è sufficiente leggere prima la documentazione. Non sarei in grado di spiegarti tutto questo qui. Suggerisco di iniziare con JavaScript API (http://developers.facebook.com/docs/reference/javascript/) in quanto è meglio documentato (e più semplice). Una volta che hai fatto dei progressi, convertire il tuo codice js api in php api dovrebbe essere abbastanza semplice. – serg

+0

Ok. Proverò a guardare la js api. Hai bisogno di registrare un'applicazione su Facebook per poter svolgere questo tipo di attività? – user412264

2

utilizzare gli URL grafico facebook api che essi forniscono

codice Python usando simplejson parser

keyword="old spice" 
searchurl='http://graph.facebook.com/search?q='+keyword 
resp=urllib2.urlopen(searchurl) 
pageData=resp.read() 
json = simplejson.loads(pageData) 
posts=json['data'] 
for p in posts: 
    postid=p['id'] 
    username=p['from']['name'] 
    posterimg=p['icon'] 
    comment=p['message'] 
+0

non so fino a che punto si ottiene, ma +1 per una soluzione pulita a quello che avrei pensato come un problema più grande – Nicolas78

+0

cool! Ho bisogno di guardare più vicino a questo codice poiché non ho familiarità con Python. Tnx per l'esempio! – user412264

+0

Dire 404 cattiva richiesta –

2

In JavaScript (jQuery).

Puoi usare il mio access_token ricambio per la visualizzazione di gruppo pubblico o pagine;)

Per ottenere il tuo token di accesso facebook graph explorer in grado di generare una per te (così come le query di prova).

In Javascript facciamo una richiesta al grafico di facebook, che restituisce un oggetto JSON. La risposta sembra this.

Il codice sotto itera ogni voce e stampa il messaggio, se si guarda il collegamento sopra riportato si ottiene la convenzione di denominazione per gli altri campi dati.

ad esempio:

data.data[0].created_time; 
data.data[0].from.name; 

ecc ..

Speranza che aiuta!

<!DOCTYPE html> 
<head> 
<script src="http://code.jquery.com/jquery-1.6.2.min.js"></script> 
</head> 

<body> 

<ul id = 'list'> 
<script> 

    var graphQuery = 'https://graph.facebook.com/2228101777/feed'; 
    var authToken = '145634995501895|477bb3c939123a5845afe90d.1-100002565213903|F1VA26jsYL7yBeq2iU6SZX_XXrs' 

    var url = graphQuery +'?access_token='+ authToken +'&callback=?'; 

    $.getJSON(url,function(data){      
     for(i=0; i < data.data.length; i++){ 
      $("#list").append('<li>'+ data.data[i].message +'</li>'); 
      // add some more here if needed 
     }    
    }); 

</script> 

</ul> 
</body> 
</html> 
Problemi correlati