Ever wanted to put a Facebook page’s feed into your website? Every Facebook page has an RSS & JSON feed. In this tutorial I will show you how to use PHP and JSON to pull the feed from Facebook without authentication.
- You will need your page ID. You can get this from https://graph.facebook.com/yourpage for example https://graph.facebook.com/HoosierHeights If your page does not have a username, you can visit your page and copy the last numbers in the URL for example:https://www.facebook.com/pages/HoosierHeights/163276271689
- Now that you have your page ID you can view the JSON feed at this URL:
http://www.facebook.com/feeds/page.php?id=163276271689&format=json
(replacing the number with your page ID). - Here is the PHP code to pull the JSON feed into your site. (Be sure to replace the URL with your own).12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
<?
//replace the Page ID with your own
// disguises the curl using fake headers and a fake user agent.
function
disguise_curl(
$url
)
{
$curl
= curl_init();
// Setup headers - the same headers from Firefox version 2.0.0.6
// below was split up because the line was too long.
$header
[0] =
"Accept: text/xml,application/xml,application/xhtml+xml,"
;
$header
[0] .=
"text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"
;
$header
[] =
"Cache-Control: max-age=0"
;
$header
[] =
"Connection: keep-alive"
;
$header
[] =
"Keep-Alive: 300"
;
$header
[] =
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"
;
$header
[] =
"Accept-Language: en-us,en;q=0.5"
;
$header
[] =
"Pragma: "
;
// browsers keep this blank.
curl_setopt(
$curl
, CURLOPT_URL,
$url
);
curl_setopt(
$curl
, CURLOPT_USERAGENT,
'Mozilla'
);
curl_setopt(
$curl
, CURLOPT_HTTPHEADER,
$header
);
curl_setopt(
$curl
, CURLOPT_REFERER,
''
);
curl_setopt(
$curl
, CURLOPT_ENCODING,
'gzip,deflate'
);
curl_setopt(
$curl
, CURLOPT_AUTOREFERER, true);
curl_setopt(
$curl
, CURLOPT_RETURNTRANSFER, 1);
curl_setopt(
$curl
, CURLOPT_TIMEOUT, 10);
$html
= curl_exec(
$curl
);
// execute the curl command
curl_close(
$curl
);
// close the connection
return
$html
;
// and finally, return $html
}
// uses the function and displays the text off the website
$text
= disguise_curl(
$url
);
$json_feed_object
= json_decode(
$text
);
foreach
(
$json_feed_object
->entries
as
$entry
)
{
echo
"<h2>{$entry->title}</h2>"
;
$published
=
date
(
"g:i A F j, Y"
,
strtotime
(
$entry
->published));
echo
"<small>{$published}</small>"
;
echo
"<p>{$entry->content}</p>"
;
echo
"<hr />"
;
}
?>