user412264
user412264

Reputation: 221

Get data from a facebook page wall or group wall for use on personal website

I want to connect to public facebook page or group and list all entries from the wall on a personal website. I will use PHP on my server so that would be the best solution for me. Or javascript.

Could anyone explain or perhaps give a working code on how to do this? Or just all steps nessesary for making this?

If its possible to handle information about person, date, description ... for each post, that would be great! So my layout could be customized.

Thanks for helping me out here!

Upvotes: 15

Views: 19806

Answers (4)

Craig Richardson
Craig Richardson

Reputation: 21

In JavaScript (jQuery).

You can use my spare access_token for viewing public groups or pages ;)

To get your own access token the facebook graph explorer can generate one for you (as well as test queries).

In Javascript we make a request to facebook graph, which returns a JSON object. The response looks like this.

The code below iterates though each entry and prints out the message, if you look at the link above it gives you the naming convention for the other data fields.

for example:

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

etc..

Hope that Helps!

<!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>

Upvotes: 2

JiminyCricket
JiminyCricket

Reputation: 7410

use the facebook graph api urls that they provide

python code using 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']

Upvotes: 2

serg
serg

Reputation: 111325

You need to run FQL on stream table and provide id of a page or group you are interested in as source_id (fb docs have some explanation and examples). Once you get stream data you can dig deeper and get user who left this post or any other data you need again through FQL.

There are many ways of running FQL - it could be done in JS API, PHP API, or through old REST API.

Upvotes: 4

Althane
Althane

Reputation: 103

What you are talking about, as far as I can tell, is Web Scraping. What you would do is get the URL of the group, use the file_get_contents($url) command in PHP to get the file, and then analyze it in PHP.

I'd suggest brushing up on your regular expressions for this, as it'll be important to review the HTML that Facebook uses for the wall posts. You'll be able to get the information that you're looking for from the HTML.

I would post some example code, but that's on another computer, far far away. Still, should be a good start.

Edit: Adding in some example code:

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

Here's the link to the PHP pages on Regular Expressions:

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

Upvotes: 0

Related Questions