0

我想在我的网站上登录 Facebook

为此,我遵循了以下步骤:

1)在开发人员处创建了一个演示站点(我也上传了图像)

2)将app id复制到需要的地方

<div id="fb-root"></div>
  <script>
    window.fbAsyncInit = function() {
      FB.init({
        appId      : '<MY APP ID>',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true,
      });
    };
    (function(d){
       var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = "//connect.facebook.net/en_US/all.js";
       d.getElementsByTagName('head')[0].appendChild(js);
     }(document));
  </script>
  <div class="fb-login-button">Login</div>

3)我得到了如图所示的fb 登录按钮:

在此处输入图像描述 单击按钮时会弹出一个新窗口,询问 fb 用户名和密码,返回后显示此错误

Unsafe JavaScript attempt to access frame with URL https://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=158742990907100&redirect_uri=http%3A%2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter.php%3Fversion%3D5%23cb%3Dfbf1cdd54%26origin%3Dhttp%253A%252F%252Flocalhost%253A8080%252Ffa53db99%26domain%3Dlocalhost%26relation%3Dopener%26frame%3Df27abde948&sdk=joey&display=popup&response_type=token%2Csigned_request&domain=localhost&fbconnect=1&from_login=1&client_id=158742990907100 from frame with URL http://localhost:8080/Befundo/. Domains, protocols and ports must match.

我为我的应用设置的属性是:我不确定APP NAMESPACEAPP DOMAINSITE URL 在此处输入图像描述

我又遇到了一个问题,当我两次单击登录按钮时,它会在浏览器的控制台中记录此消息::

FB.login() called when user is already connected.

什么也不做。

请阐明我做错了什么?提前致谢。

4

1 回答 1

0

您的登录按钮按预期工作,它正在连接用户(通过第二次单击登录按钮后出现的消息确认)。

下一条消息不是您的代码中的错误(这是因为尝试与 Facebook 通信的 JS-SDK 应用了跨域策略):

不安全的 JavaScript 尝试访问带有 URL 的框架……从带有 URL 的框架……域、协议和端口必须匹配。

您可以(可能)通过将 self-hosted 传递channelUrlFB.init. (见FB.init文档

连接用户后,您似乎也什么都不做。阅读文档FB.login以了解用户登录后应该做什么...

于 2012-04-29T08:11:17.313 回答