2012-07-27 15 views
7

Por la vida que tengo, no puedo hacer que Event.subscribe ('auth.authResponseChange') funcione. Vea el código a continuaciónfacebook FB.Event.subscribe ('auth.authResponseChange') no funciona

<div id="fb-root"> 
    </div> 
    <script> 
     window.fbAsyncInit = function() { 
      FB.init({ 
       appId: 'XXXXXXXXXXXXXXX', // App ID 
       channelUrl: 'http://XXXXXXXX.us/', // Channel File 
       status: true, // check login status 
       cookie: true, // enable cookies to allow the server to access the session 
       xfbml: true // parse XFBML 
      }); 

      FB.Event.subscribe('auth.authResponseChange', function (response) { 
       alert('The status of the session is: ' + response.status); 
      }); 
     }; 


     // Load the SDK Asynchronously 
     (function (d) { 
      var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
      if (d.getElementById(id)) { return; } 
      js = d.createElement('script'); js.id = id; js.async = true; 
      js.src = "//connect.facebook.net/en_US/all.js"; 
      ref.parentNode.insertBefore(js, ref); 
     } (document)); 
    </script> 
    <div class="fb-login-button" data-size="xlarge" scope="email" data-show-faces="false" 
     data-width="400" data-max-rows="1" autologoutlink="true"> 
     Login with Facebook</div> 

Se visualiza el botón de inicio de sesión. y también puedo desconectarme. El único problema es que el cambio de auth.response no se activa y no aparece el mensaje emergente

+0

FBML será obsoleta en poco tiempo. Es mejor no usarlo. – InspiredJW

+3

@InspiredJW FBML ya está en desuso, esto es XFBML, algo que no va a ser obsoleto. –

+0

ha intentado comprobar simplemente 'respuesta [0]'? De acuerdo con la documentación, * Tenga en cuenta que, en algunos casos, el valor de respuesta está deshabilitado, pero cuando se devuelve más de una variable, contiene las claves adecuadas. * => http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/ – PlantTheIdea

Respuesta

-4

La función fbAsyncInit se llama de forma asíncrona, por lo que no verá ningún mensaje de alerta. Pruebe console.log en su lugar para la depuración.

-1

Su código se ve bien.

Me gustaría acceder a su aplicación de Facebook y verificar en 2 configuraciones en particular.

  1. Comprobar 'modo de recinto' -garantizar que está establecido en 'Desactivado'
  2. Compruebe la dirección URL del sitio y/o URL lienzo -Garantizar que se establecen en su dominio. (Es decir, si se está trabajando en este local URL debe ser algo así como http://localhost:#####/ donde ##### es el puerto.

Espero que ayude.

+0

hey, ¿sabes cómo? para descubrir mi puerto número para esto? – LazerSharks

+0

Si está trabajando en Visual Studio, desde su Solution Explorer, haga clic derecho en su proyecto web y haga clic en Propiedades. A su izquierda, 3 ° abajo, elija Web. En la sección Servidores, seleccione 'Puerto específico' y use el predeterminado o elija uno nuevo. – KevinM

Cuestiones relacionadas