I managed to fix this by creating an App Id and adding the async functions to the body of my script. Perhaps Facebook has changed the requirements now?
In any case, this may help:
1. Create an app on Facebook, using your blog URL as the App URL : https://developers.facebook.com/setup/
This should auto generate your app ID, and also generate some sample code.
2. Add the facebook xml namespace that was generated to your opening html tag:
xmlns:fb="https://www.facebook.com/2008/fbml"
e.g.
<!DOCTYPE html>
<html xmlns="https://www.w3.org/1999/xhtml"
xmlns:fb="https://www.facebook.com/2008/fbml">
3. Add the fb-root div and the script containing the window.fbAsyncInit javascript stuff somewhere inside the <BODY> tag of your blog, e.g:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'USE_YOUR_APP_ID_HERE', status: true, cookie: true,
xfbml: true});
};
(function() {
var e = document.createElement('script');
e.type = 'text/javascript';
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
Everything started working for me after I did this.