2012-07-27 11 views
7

Für das Leben von mir kann ich Eventsubscribe ('auth.authResponseChange') nicht funktionieren. Siehe Code unterfacebook FB.Event.subscribe ('auth.authResponseChange') funktioniert nicht

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

Die Login-Schaltfläche wird gerendert. und ich kann mich auch abmelden. Das einzige Problem ist, dass die Änderung von auth.response nicht ausgelöst wird und ich das Popup "Nachricht" nicht erhalte

+0

FBML bald veraltet sein wird. Besser es nicht verwenden. – InspiredJW

+3

@InspiredJW FBML ist bereits veraltet, das ist XFBML, etwas, das nicht veraltet sein wird –

+0

haben Sie versucht, nur 'response [0]' zu überprüfen? Gemäß der Dokumentation, * Beachten Sie, dass in einigen Fällen der Wert der Antwort ist unkeyed, aber wenn mehr als eine Variable zurückgegeben wird, enthält sie die entsprechenden Schlüssel. * => http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/ – PlantTheIdea

Antwort

-4

Ihre fbAsyncInit-Funktion wird asynchron aufgerufen, so dass Sie keine Warnmeldungen sehen werden. Versuchen Sie stattdessen console.log zum Debuggen.

-1

Ihr Code sieht gut aus.

Ich würde auf Ihre Facebook-App zugreifen und überprüfen Sie auf 2 Einstellungen insbesondere.

  1. Check 'Sandbox-Modus' -sich vergewissern es auf 'Deaktiviert' gesetzt ist
  2. Überprüfen Sie Ihre Website-URL und/oder Canvas URL -Sicherstellen sie auf Ihre Domain festgelegt werden. (Dh, wenn Sie auf dieser lokal Ihre URL arbeiten etwas wie http://localhost:#####/ aussehen sollte, wo ##### Ihr Port ist.

Hoffnung, das hilft.

+0

hey, weißt du wie um meinen Hafen zu finden Nummer dafür? – LazerSharks

+0

Wenn Sie in Visual Studio arbeiten, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Webprojekt, und klicken Sie auf Eigenschaften. Wählen Sie links, 3. nach unten, Web. Wählen Sie im Bereich Server die Option 'Spezifischer Port' und verwenden Sie entweder den Standardport oder wählen Sie einen neuen. – KevinM

Verwandte Themen