Lil Josh

A tech blog about web development with PHP, MySQL, jQuery, CSS3 and various other programming languages. You will not find anything about ColdFusion, ASP.NET, C# on this blog.

Facebook Page JSON & RSS Feed

March 13, 2012

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.

facebook facebook page integrate Facebook feed JSON feed PHP RSS feed

Adding Facebook Like Button to Posts

February 18, 2012

I recently added Facebook like buttons to each of my posts and was surprised at how easy it was. There is no need to install plugins because it’s very simple.

  1. Go to Facebook and get the code to make the like button: https://developers.facebook.com/docs/reference/plugins/like/
  2. Copy the code from part one and go to your WP Dashboard under Appearance -> Editor
  3. Select your theme on the top right dropdown.
  4. Click header.php from the list of files.
  5. Paste the first code after the tag.
  6. Update that file.
  7. Open index.php and find the loop. It should look like this:
  8. Go back to Facebook and copy the second code.
  9. Paste it inside of the loop at the end of the “entry” div.
  10. Replace the data-href URL with and that will generate the URL for that post.
  11. Update that file.
  12. Open single.php and find the loop and do steps 9-11 again.

Pretty simple. I also recommend checking out the WP Facebook Open Graph protocol plugin http://wordpress.org/extend/plugins/wp-facebook-open-graph-protocol/

facebook like button tutorial Wordpress