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

标签 javascript html 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.");
  }
});
    }

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>

如有任何帮助,我们将不胜感激。

最佳答案

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

替换

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

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

关于javascript - 您必须在调用 logIn 之前初始化 FacebookUtils,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28948931/

相关文章:

javascript - 如何使用 JavaScript 获取与元素 SPAN 样式相关的所有文本?

javascript - 我的网站的 Facebook checkin 按钮

javascript - 如何在javascript中动态构建json数组

android - Facebook 和 Proguard 错误

javascript - 根据月份显示jquery完整日历中的行和列总数

javascript - 如何更改鼠标悬停时下拉选项的背景颜色?

javascript - 是否有一种简单的 JavaScript 方法来操作任意 URL?

javascript - 有没有办法将背景图像设置为 base64 编码图像?

asp.net - 将图片与文本框结合的最佳方式

html - 如何删除背景灰色使其在 html 中为 50x50