您必须在调用logIn之前初始化FacebookUtils

Jon*_*nne 6 html javascript html5 facebook parse-platform

我试图将Facebook与Parse集成.我遵循了以下指南,https://parse.com/docs/js_guide#fbusers但仍然遇到问题.

简而言之,Facebook上有一个登录按钮.当用户不存在时,它将用户重定向到注册页面,当其现有用户将其重定向到帐户创建页面中他们选择的城市页面时.如果用户取消注册过程,则在登录时,会将现有用户带到帐户注册页面.

但是,仅当用户不存在且尚未完成注册过程时才会显示Facebook屏幕.以下是我尝试登录时收到的警告:

在控制台警告/错误上

  • 传递到FB.init的'status'标志,当设置为true时,可能会干扰Parse Facebook集成,因此它已被抑制.如果您需要此行为,请显式调用FB.getLoginStatus().

  • FB.init已被调用 - 这可能表示存在问题sdk.js:61不支持设置authResponse

  • 您必须在调用logIn之前初始化FacebookUtils.
  • 用户已连接时调用FB.login().

以下是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.");
  }
});
    }
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)
    <script src="lib/facebookConnectPlugin.js"></script>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

小智 -1

这是因为您的应用程序无法找到您尝试在脚本标记中导入的 facebook 的 sdk.js。

代替

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

js.src = "https://connect.facebook.net/en_US/sdk.js";
Run Code Online (Sandbox Code Playgroud)