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

时间:2015-03-09 18:11:20

标签: javascript html html5 facebook parse-platform

我试图将Facebook与Parse整合。我已按照以下指南https://parse.com/docs/js_guide#fbusers进行操作,但仍遇到问题。

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

但是,只有当用户不存在并且无法完成注册过程时,才会显示Facebook屏幕。以下是我尝试登录时收到的警告:

关于控制台警告/错误

  • '状态' flag传递给FB.init,当设置为true时,可以 干扰Parse Facebook集成,因此它已被压制。 如果需要,请明确调用FB.getLoginStatus() 行为。

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

  • 您必须在调用logIn之前初始化FacebookUtil。
  • 当用户已连接时调用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.");
  }
});
    }

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>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

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

替换

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

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