FB est indéfini même si je l'ai juste utilisé

Je suis en train d'ajouter un Facebook Comme le bouton de widget que je suis en train de créer. Le code que j'utilise pour ajouter le Facebook comme le bouton de ma page est la suivante:

widget.html

<body>
<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function() {
        FB.init({
            appId  : '263071593731910',
            status : false, //check login status
            cookie : true, //enable cookies to allow the server to access the session
            xfbml  : true  //parse XFBML
        });
    };
    (function() {
        var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    }());
</script>
<div id="fb-button"></div>
<script type="text/javascript" src="widget.js"></script>

widget.js

$(function(){
var fb = $(document.createElement("fb:like"));
fb.attr({
    href: data.facebook,
    send: false,
    layout: 'button_count',
    width: 70,
    'show_faces': false
});
$("#fb-button").empty().append(fb);
FB.XFBML.parse($("#fb-button").get(0));
FB.Event.subscribe('edge.create',changeView);
});

*La changeView fonction existe aussi bien dans le JavaScript.

Lorsque j'exécute le code, j'obtiens une erreur: Uncaught ReferenceError: FB is not defined même si le bouton est créé. L'erreur est pointant vers la ligne contenant FB.XFBML.analyser le code. Est-il quelque chose que je dois faire différemment dans mon JavaScript?

source d'informationauteur Dave Long