2012-02-07 30 views
6

Desidero caricare facebook api (javascript SDK) in modo sincrono. Ho visto questo codice sugli sviluppatori di Facebook.Come caricare javascript facebook api SINCRONO ...?

<div id="fb-root"></div> 
<script src="//connect.facebook.net/en_US/all.js"></script> 
<script> 
FB.init({ 
appId  : 'YOUR_APP_ID', 
channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
status  : true, // check login status 
cookie  : true, // enable cookies to allow the server to access the session 
xfbml  : true // parse XFBML 
}); 
</script> 

e anche sul riferimento ad un altro link http://www.masteringapi.com/tutorials/facebook-javascript-sdk-best-practices/58/ si è menzionato che "Ma è necessario assicurarsi che non si definisce FB nel proprio codice JS o librerie!" ....... ........

Sono confuso ....! Per favore aiutami ....

+0

cosa ti sta confondendo esattamente? –

risposta

3

Quello che stai facendo sembra a posto.

Le istruzioni che hai visto "Ma devi assicurarti di non definire FB nel tuo codice JS o nelle tue librerie!" è semplicemente un avvertimento per non dichiarare una variabile denominata FB nella tua applicazione, o nasconderai l'SDK di Facebook.

Nel proprio codice, nella riga successiva, è possibile iniziare a effettuare chiamate con FB.api o uno qualsiasi degli altri metodi.

Questo aiuto?

+0

hi, Ho passato l'id dell'applicazione al codice sopra menzionato. Dopo aver chiamato, FB.getLoginStatus (function (response) {alert (response.status); }); Ma sta visualizzando l'errore "e.root non è definito". –

+0

Puoi mostrare lo stack completo delle chiamate? –

-8

Aggiungere il seguente codice dopo l'apertura tag html

<div id="fb-root"> 
    </div> 

    <script> 
     window.fbAsyncInit = function() { 
      FB.init({ 
       appId: 'Your APP ID', 
       status: true, // check login status 
       cookie: true, // enable cookies to allow server to access session 
       xfbml: true, // parse XFBML 
       oauth: true 
      }); 
     }; 
    (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> 

Questo codice caricherà lo SDK javascript in modo asincrono.

+0

Sto usando queste righe nel mio progetto per caricare l'SDK JS in modo asincrono e funziona bene per me .. Posso sapere il motivo del voto negativo, in modo che possa essere più chiaro nella mia risposta. –

+3

La domanda era come caricare il sdk in modo SINCRONO, come è stato scritto in maiuscolo nel titolo. Il tuo codice viene caricato in modo asincrono. Nel caso in cui non l'avessi notato nei 6 mesi da quando hai postato questa risposta. – jaimerump