2015-03-09 10 views
6

Próbowałem zintegrować Facebook z Parse. Mam następujący przewodnik, https://parse.com/docs/js_guide#fbusers, ale wciąż występują problemy.Musisz zainicjować FacebookUtils przed wywołaniem loginu

W skrócie, istnieje przycisk logowania z Facebookiem. Gdy użytkownik nie istnieje, przekierowuje użytkownika na stronę rejestracji, a gdy jest już istniejącym użytkownikiem, przekierowuje go na stronę miasta ich wyboru na stronie tworzenia konta. Jeśli użytkownik anuluje proces rejestracji, po zalogowaniu zabiera istniejącego użytkownika na stronę rejestracji konta.

Jednak ekran na Facebooku jest wyświetlany tylko wtedy, gdy użytkownik nie istnieje i nie sfinalizował procesu rejestracji. Poniżej znajdują się ostrzeżenia dostaję przy próbie logowania:

o ostrzeżeniach Console/Błędy

  • Flaga „status” przeszedł w FB.init, gdy wartość true, można zakłócać Parse Integracja z Facebookiem, więc została zniesiona. Zadzwoń bezpośrednio do funkcji FB.getLoginStatus(), jeśli potrzebujesz tego zachowania .

  • FB.init już nazywa - może to wskazywać na problem sdk.js: 61 Ustawienie authResponse nie jest obsługiwana

  • Musisz zainicjować FacebookUtils przed wywołaniem zalogować.
  • FB.login() wywołana, gdy użytkownik jest już podłączony.

Poniżej znajduje się kod JavaScript:

// Initialize Parse 
Parse.initialize("ID", "ID"); 

    window.fbAsyncInit = function() { 
    Parse.FacebookUtils.init({ // this line replaces FB.init({ 
     appId  : '433936150095453', // Facebook App ID 
     status  : true, // check Facebook Login status 
     cookie  : true, 
     xfbml  : true, // initialize Facebook social plugins on the page 
     version : 'v2.2' // point to the latest Facebook Graph API version 
    }); 

    // Run code after the Facebook SDK is loaded. 
    }; 

    (function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

    function fbLogin(){ 
    Parse.FacebookUtils.logIn(null, { 
    success: function(user) { 
    if (!user.existed()) { 
       window.open("accountCreate.html", "_self"); 
    } else { 
    if (city == "San Francisco") { 
       window.open("neighbourhoodselectSF.html", "_self"); 
       } else if (city == "New York City"){ 
       window.open("neighbourhoodSelectNYC.html", "_self"); 
    } 
      else { 

           window.open("accountCreate.html", "_self"); 

      } 

    } 
    }, 
    error: function(user, error) { 
    alert("User cancelled the Facebook login or did not fully authorize."); 
    } 
}); 
    } 

Kod html:

<button onclick="fbLogin()" id="facebookLogin" class="button button-block button-positive"> 
     <i class="icon ion-social-facebook"></i> &nbsp; <text id="textBtn">Get started with facebook </text> 
</button> 

    <script src="js/facebook.js"></script> 
<script src="lib/facebookConnectPlugin.js"></script> 

Każda pomoc będzie mile widziana.

+0

Mam w obliczu tego samego problemu, nie wiem co robić :-( –

+0

mam ten sam problem – Bernard

+0

udało Ci się rozwiązać wydanie? –

Odpowiedz

-1

Dzieje się tak dlatego, że aplikacja nie może znaleźć pliku sdk.js, który próbuje się zaimportować w znaczniku skryptu.

Wymień

js.src = "//connect.facebook.net/en_US/sdk.js";

z

js.src = "https://connect.facebook.net/en_US/sdk.js"; 
+0

Próbowałem już z twoim rozwiązaniem, ale nadal mam ten sam problem, co inni! –

Powiązane problemy