Facebook登录连接

时间:2012-04-29 07:36:45

标签: facebook

我想在我的网站 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登录按钮,如图所示:

enter image description here 单击按钮时会弹出一个新窗口,询问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 NAMESPACE APP DOMAIN 站点网址 enter image description here

我又遇到了一个问题,当我单击两次“登录”按钮时,它会在Browser ::

的控制台中记录此消息
FB.login() called when user is already connected.

什么都不做。

请在我做错的地方说清楚? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

  

不安全的JavaScript尝试使用URL访问带有URL的帧...来自URL的域...域,协议和端口必须匹配。

您可以(可能)通过将自托管channelUrl传递给FB.init来抑制它。 (见FB.init documentation

用户连接后,您似乎也无所事事。阅读documentation for FB.login以了解用户登录后应该执行的操作...