Quantcast
Channel: Lil Josh » PHP
Viewing all articles
Browse latest Browse all 11

Facebook Page JSON & RSS Feed

$
0
0

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.

  1. Make sure your Page is published and visible to the public. This can be done under the Page settings. Publish Page
  2. 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  NOTE: If you’re page is not published (step 1) then you’ll get this error [php]{
    “error”: {
    “message”: “Unsupported get request.”,
    “type”: “GraphMethodException”,
    “code”: 100
    }
    }[/php]
  3. 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). NOTE: You can get the RSS version by replacing format=json with format=rss20 for example https://www.facebook.com/feeds/page.php?id=163276271689&format=rss20
  4. Here is the PHP code to pull the JSON feed into your site. (Be sure to replace the URL with your own).
    [php]

    //replace the Page ID with your own
    $url = "http://www.facebook.com/feeds/page.php?id=163276271689&format=json";

    // 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 “

    {$entry->title}

    “;
    $published = date(“g:i A F j, Y”, strtotime($entry->published));
    echo “{$published}“;
    echo “

    {$entry->content}

    “;
    echo “


    “;
    }

    /* * * * * * * * * * * * * * * * * *
    * Below is the XML version *
    * assuming you used the XML *
    * format in the Facebook feed URL *
    * You’ll need to uncomment to use *
    * * * * * * * * * * * * * * * * * */
    //$xml = new SimpleXMLElement($text);
    //foreach ( $feed->item as $entry )
    //{
    // echo “

    ” . (string) $entry->title . “

    “;
    // $published = date(“g:i A F j, Y”, strtotime($entry->pubDate));
    // echo “{$published}“;
    // echo “

    ” . (string) $entry->description . “

    “;
    // echo “


    “;
    //}

    ?>
    [/php]

That’s it! Easy right? I would like to give credit to @mdlamar for providing help with this idea.


Viewing all articles
Browse latest Browse all 11

Trending Articles