2012-02-07 18 views
6

Quiero cargar facebook api (javascript SDK) sincrónicamente. He visto este código en los desarrolladores de Facebook.Cómo cargar javascript facebook api SINCRÓNEA ...?

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

y también en referencia a otro enlace http://www.masteringapi.com/tutorials/facebook-javascript-sdk-best-practices/58/ se menciona que "Pero hay que asegurarse de que no se define FB en su propio código JS o bibliotecas!" ....... ........

¡Estoy confundido ...! Por favor, ayúdenme ...

+0

¿Qué te está confundiendo exactamente? –

Respuesta

3

Lo que está haciendo se ve bien.

Las instrucciones que ha visto, "¡Pero debe asegurarse de no definir FB en su propio código JS o bibliotecas!" es simplemente una advertencia para no declarar una variable llamada FB en su aplicación, o va a ocultar el SDK de Facebook.

En su código, en la siguiente línea, puede comenzar a hacer llamadas con FB.api o cualquiera de los otros métodos.

¿Eso ayuda?

+0

hola, Pasé la identificación de la aplicación al código mencionado anteriormente. Después de eso llamé, FB.getLoginStatus (función (respuesta) {alerta (response.status); }); Pero muestra el error "e.root no está definido". –

+0

¿Puedes mostrar la pila de llamadas completa? –

-8

Agregar el siguiente código después de la apertura etiqueta 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> 

Este código se carga el SDK de JavaScript asíncrona.

+0

Estoy usando estas líneas en mi proyecto para cargar el JS SDK de manera asíncrona y funciona bien para mí. Conozco el motivo del voto negativo, para poder ser más claro en mi respuesta. –

+3

La pregunta era cómo cargar el SDK SYNCHONOUSLY, como estaba en mayúscula en el título. Su código se carga de forma asincrónica. En caso de que no lo hayas notado en los 6 meses desde que publicaste esta respuesta. – jaimerump