Facebook Connect(javascript sdk)中的API密钥错误

Facebook Connect(javascript sdk)中的API密钥错误,javascript,facebook,login,sdk,connect,Javascript,Facebook,Login,Sdk,Connect,我正在尝试在一个网站上实现Facebook连接。我正在尝试使用Facebok的Javascript SDK。我是新手,不幸的是,Facebook WIKI中提供的大多数链接都过时了。。。返回404未找到。无论如何,我在结尾之前添加了以下代码: 在同一页面中的上述脚本之前,我在其他地方有一个登录按钮: <fb:login-button v="2">Connect with Facebook</fb:login-button> 此按钮呈现为普通fb connect按钮,单击

我正在尝试在一个网站上实现Facebook连接。我正在尝试使用Facebok的Javascript SDK。我是新手,不幸的是,Facebook WIKI中提供的大多数链接都过时了。。。返回404未找到。无论如何,我在结尾之前添加了以下代码:

在同一页面中的上述脚本之前,我在其他地方有一个登录按钮:

<fb:login-button v="2">Connect with Facebook</fb:login-button>
此按钮呈现为普通fb connect按钮,单击该按钮将打开一个新的弹出窗口,正常情况下应如此。问题是它显示了“指定的api密钥无效”错误。在检查弹出窗口的地址栏时,我看到api_key=undefined被传递给它:

你知道吗?我在过去的5个小时里一直在努力解决这个问题。。。请帮我找出为什么正确的API密钥没有被传递到弹出窗口


提前感谢。

我也在做同样的事情,我在这里发现了一个很容易实现和理解的示例,它们可以使用jQuery,但不使用库也可以这样做:

<body>
  <div>
    <button id="login">Login</button>
    <button id="disconnect">Disconnect</button>
  </div>
  <div id="user-info" style="display: none;"></div>

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

  <div id="fb-root"></div>
  <script src="http://connect.facebook.net/en_US/all.js"></script>
  <script>
    // initialize the library with the API key
    FB.init({ appId  : '12344' });

    // fetch the status on load
    FB.getLoginStatus(handleSessionResponse);

    $('#login').bind('click', function() {
      FB.login(handleSessionResponse);
    });

    $('#disconnect').bind('click', function() {
      FB.api({ method: 'Auth.revokeAuthorization' }, function(response) {
        clearDisplay();
      });
    });

    // no user, clear display
    function clearDisplay() {
      $('#user-info').hide('fast');
    }

    // handle a session response from any of the auth related calls
    function handleSessionResponse(response) {
      // if we dont have a session, just hide the user info
      if (!response.session) {
        clearDisplay();
        return;
      }

      // if we have a session, query for the user's profile picture and name
      FB.api(
        {
          method: 'fql.query',
          query: 'SELECT name, pic FROM profile WHERE id=' + FB.getSession().uid
        },
        function(response) {
          var user = response[0];
          $('#user-info').html('<img src="' + user.pic + '">' + user.name).show('fast');
        }
      );
    }
  </script>
</body>

查找整个代码,您可以找到其他资源。

您需要设置画布发布授权url,并确保基本画布url是发布授权url的前缀

我已将我的facebook connect地址设置为有www,并且我正在使用非www访问我的测试站点,当我切换到www版本时,fb connect工作正常。

感谢Kucede的帮助。通过使用旧的FB.Connect类,我可以摆脱是的,实际上是我的项目。具有讽刺意味的是,FB Dev文档包含旧代码和新代码的混合,没有任何关于该文档属于哪个版本的提示。。。真的,这是我一生中见过的最糟糕的文档。不过我很感谢你的帮助。可能是我需要使用这个,如果我遇到一个类似的项目在未来。
<body>
  <div>
    <button id="login">Login</button>
    <button id="disconnect">Disconnect</button>
  </div>
  <div id="user-info" style="display: none;"></div>

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

  <div id="fb-root"></div>
  <script src="http://connect.facebook.net/en_US/all.js"></script>
  <script>
    // initialize the library with the API key
    FB.init({ appId  : '12344' });

    // fetch the status on load
    FB.getLoginStatus(handleSessionResponse);

    $('#login').bind('click', function() {
      FB.login(handleSessionResponse);
    });

    $('#disconnect').bind('click', function() {
      FB.api({ method: 'Auth.revokeAuthorization' }, function(response) {
        clearDisplay();
      });
    });

    // no user, clear display
    function clearDisplay() {
      $('#user-info').hide('fast');
    }

    // handle a session response from any of the auth related calls
    function handleSessionResponse(response) {
      // if we dont have a session, just hide the user info
      if (!response.session) {
        clearDisplay();
        return;
      }

      // if we have a session, query for the user's profile picture and name
      FB.api(
        {
          method: 'fql.query',
          query: 'SELECT name, pic FROM profile WHERE id=' + FB.getSession().uid
        },
        function(response) {
          var user = response[0];
          $('#user-info').html('<img src="' + user.pic + '">' + user.name).show('fast');
        }
      );
    }
  </script>
</body>