Facebook JavaScript SDK : Login button not showing up

标签 facebook facebook-javascript-sdk facebook-login

我最近向我的网站添加了 Facebook 登录按钮,并且集成似乎运行良好。我遇到的唯一问题是,当我退出 Facebook 时,“登录”按钮没有显示。还有其他人遇到过这个问题吗?

我使用直接来自 Javascript SDK 文档的代码 (https://developers.facebook.com/docs/reference/javascript):

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID', // App ID
      channelURL : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      oauth      : true, // enable OAuth 2.0
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
  };

  // Load the SDK Asynchronously
  (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" data-show-faces="true" data-width="200" data-max-rows="1">Login with Facebook</div>

有人发现我这里的内容有任何问题吗?

最佳答案

使用完全精简的 HTML 页面测试此代码对我来说效果很好。如果您没有登录 Facebook,它会显示登录按钮;如果您登录了,它会显示与您一起在该网站上的 friend 。也许您的代码的其他部分正在干扰?您可以尝试使用我下面的基本 HTML 吗?

<html>
<head>

</head>
<body>

<div id="fb-root"></div>
<script>
    var appId = 'YOUR_APP_ID';
    var siteRoot = 'YOUR_HOST_NAME';

  window.fbAsyncInit = function() {
    FB.init({
      appId      : appId,
      channelURL : '//'+siteRoot+'/channel.html', // Channel File
      status     : true,
      cookie     : true,
      oauth      : true,
      xfbml      : 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" data-show-faces="true" data-width="200" data-max-rows="1">Login w/ Facebook</div>

</body>
</html>

密切相关 - 如果您想在用户登录的情况下显示与默认值不同的内容,您可以使用以下命令检查登录状态:

FB.getLoginStatus

或者,如果您想在用户登录后执行某些操作,可以使用以下方式绑定(bind)到登录事件:

FB.Event.subscribe('auth.login', function () {
      console.log('Hello world!');
});

关于Facebook JavaScript SDK : Login button not showing up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8172157/

相关文章:

ios - FBSDKShareLinkContent 没有设置 contentDescription 和 contentTitle

ios - "facebook login_sucess.html"未通过 iOS 中的 Graph API 提供访问 token

ios - React Native Facebook 登录按钮使 iOS 模拟器中的应用程序崩溃

Facebook Graph 发布带有链接和自定义图片的帖子不适用于 v2.9

升级到 5 后 iOS Facebook 登录不起作用

swift - 使用 swift 登录 Facebook - 导入问题

Android - Facebook SDK 4.30 初始化

javascript - 如何修改fb :request-form dynamically using Javascript?的内容

javascript - 如何更改 Facebook 登录按钮的样式?

javascript - 如何使用 ajax 将多个值发送到 PHP