2010-05-18 13 views
24

Próbuję użyć nowego interfejsu API Facebook Graph na mojej stronie. To jest to, co mam:Facebook Graph API: FB.login() zadzwonił przed wywołaniem FB.init()

gdzieś na stronie:

<fb:login-button autologoutlink="true" perms="email,user_birthday,status_update,publish_stream"></fb:login-button> 

zaraz po tagu:

<div id="fb-root"> 
    </div> 
    <script type="text/javascript"> 
     window.fbAsyncInit = function() { 
      FB.init({ appId: '<%= ConfigurationManager.AppSettings["FBAppId"] %>', status: true, cookie: true, xfbml: true }); 

      /* All the events registered */ 
      FB.Event.subscribe('auth.login', function (response) { 
       // do something with response 
       alert("login success"); 
      }); 
      FB.Event.subscribe('auth.logout', function (response) { 
       // do something with response 
       alert("logout success"); 
      }); 

      FB.getLoginStatus(function (response) { 
       if (response.session) { 
        // logged in and connected user, someone you know 
        alert("login success"); 
       } 
      }); 
     }; 
     (function() { 
      var e = document.createElement('script'); 
      e.type = 'text/javascript'; 
      e.src = document.location.protocol + 
      '//connect.facebook.net/en_US/all.js'; 
      e.async = true; 
      document.getElementById('fb-root').appendChild(e); 
     }()); 
    </script> 

ale gdy klikam na wygenerowanym przycisk logowania, nic się nie dzieje.

Ponadto Dostaję

FB.getLoginStatus() called before calling FB.init(). 

w konsoli Firebug.

Wszelkie pomysły?

Odpowiedz

41

Nie mogę w to uwierzyć, odwoływałem się do nieistniejącego klucza w pliku Web.config, a zatem FB.init nie działał po cichu.

Działa zgodnie z oczekiwaniami.

Aby być bardziej zrozumiałym Nie przekazałem aplikacji do FB.init, kiedy to zrobiłem, zadziałało.

+1

co oznacza, że ​​nie mijał klucz do sposobu FB.init. – sabbour

+0

Mam ten sam problem, ale tylko na FF na MAC osx, działa we wszystkich innych przeglądarkach. Proszę, pomóż mi z tym. sprawdź moje pytanie http://stackoverflow.com/questions/3338198/facebook-login-plugin-issue-with-ff-on-mac-osx – Nnp

+1

Czy możesz opublikować cały działający kod. Mam tutaj ten sam problem. Dzięki – Intellix

2

W moim przypadku problem odszedł po tym, jak wyłączyć funkcję XFBML (tj ustawienie klucza xfbml do false, usuwając fb: nazw i #xfbml=1 fragmentu w <script src="…">). Dobrze, że i tak go nie potrzebowałem.

YMMV, istnieje kilka innych ważnych powodów, dla których ten komunikat o błędzie może się pojawić.

1

Miałem ten sam problem, oto rozwiązanie, które działało dla mnie. Po prostu umieść następujące elementy w sekcji head lub innymi słowy dodaj app_id do źródła facebook js.

<script src="//connect.facebook.net/en_US/all.js&appId=xxxxxxxxxxxxxxx" type="text/javascript"></script>

Powiązane problemy