FB.getLoginStatus 弹出窗口内的 FB.login 被阻止

2024-04-10

我正在尝试使用 Facebook Javascript SDK 将 Facebook 登录集成到我的网站中。根据Facebook开发者文档提供的分步说明here https://developers.facebook.com/docs/javascript/quickstart/v2.2#login,这是我写的测试代码:

<script>
window.fbAsyncInit = function() {
    FB.init({
        appId      : '{$MY_APP_ID}',
        cookie     : true,  // enable cookies to allow the server to access the session
        xfbml      : true,  // parse social plugins on this page
        version    : 'v2.1', // use version 2.1
        status     : true,   // check FB login status
    });
};

function fblogin() {
    FB.getLoginStatus(function(response) {
      if (response.status === 'connected') {
        alert('Logged in.');
      }
      else {
        FB.login();
      }
    }, true);
}
</script>
<button onclick="fblogin()">login</button>
<script src="//connect.facebook.net/en_US/sdk.js"></script>

抱歉,由于网站域名的限制,我不能拿这个来摆弄。但我在自己的域上尝试过,Chrome 和 Firefox 中都会弹出 Facebook 登录窗口,但被 Safari 阻止。这有点奇怪,Facebook开发者文档提供的代码片段有什么问题吗?


正如我们在评论中已经讨论的那样,必须在用户交互时调用 FB.login,文档中的示例不正确。

这应该是一个如何正确登录的工作示例,从 Facebook 文档中的几篇文章一起复制:

<script>
    //call this on user interaction (click)
    function doLogin() {
        FB.login(function(response) {
            if (response.authResponse) {
                console.log('Welcome!  Fetching your information.... ');
                FB.api('/me', function(response) {
                    console.log('Good to see you, ' + response.name + '.');
                });
            } else {
                console.log('User cancelled login or did not fully authorize.');
            }
        }, {scope: 'email,user_friends'});
    }

    window.fbAsyncInit = function() {
        FB.init({
            appId      : 'your-app-id',
            xfbml      : true,
            version    : 'v2.1'
        });

        FB.getLoginStatus(function (response) {
            if (response.status === 'connected') {
                // the user is logged in and has authenticated your
                // app, and response.authResponse supplies
                // the user's ID, a valid access token, a signed
                // request, and the time the access token 
                // and signed request each expire
                var uid = response.authResponse.userID;
                var accessToken = response.authResponse.accessToken;
            } else if (response.status === 'not_authorized') {
                // the user is logged in to Facebook, 
                // but has not authenticated your app
            } else {
                // the user isn't logged in to Facebook.
            }
        });
    };

    (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'));
</script>
<button onclick="doLogin()">login</button>

更多解释:http://www.devils-heaven.com/facebook-javascript-sdk-login/ http://www.devils-heaven.com/facebook-javascript-sdk-login/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FB.getLoginStatus 弹出窗口内的 FB.login 被阻止 的相关文章

  • 单个墙贴中的更多操作链接

    是否可以创建具有多个操作链接的墙贴 我的代码仅适用于一个操作链接 带有两个操作链接的墙贴不会发送到 Facebook 没有错误消息 var publish method feed name name link link picture pi
  • jQuery 中的弹出窗口

    我需要一个带有单选按钮选项的弹出窗口 我已经测试过Impromtu http en wikipedia org wiki Impromptu 28programming environment 29 有没有简单的 Popupwindow 插
  • ListPopupWindow 不遵守 WRAP_CONTENT 宽度规范

    我正在尝试使用 ListPopupWindow 通过ArrayAdapter 最终这将是一个更复杂的自定义适配器 代码如下 如截图所示 得到的结果ListPopupWindow看起来就像内容宽度为零一样 它显示了正确的项目数量 这些项目仍然
  • Phonegap Facebook 连接插件设置

    我正在使用phonegap插件连接到facebook 这个 https github com phonegap build FacebookConnect https github com phonegap build FacebookCo
  • 在谷歌分析中跟踪 Facebook 评论小部件的最佳方法是什么?

    我想将谷歌分析中的事件跟踪应用于通过 facebook 社交插件 iframe 小部件 在我们网站上发表的 facebook 评论 但我似乎找不到附加事件的方法 如果解决方案是基于 jquery 的 我会更喜欢 但老实说 我对大多数建议持开
  • Facebook 与 API 版本 2.9 共享自定义参数

    我需要在 Facebook 上分享测验结果 其中包含自定义标题 图片和说明 效果完美4月18日更新至2 9版本之前 但它不适用于 2 9 版本 那我是不是错过了什么 或者 Facebook 不希望我们在 2017 年分享我们网站的自定义 F
  • Facebook API 错误 191

    我正在尝试将我的项目与 Facebook 集成 我一开始只是尝试登录 获取 Facebook 会话并获取一些用户数据 我在本地开发它 所以我的 Facebook 应用程序设置是 site URL http 127 0 0 1 8888 my
  • Facebook 身份验证对话框:开发人员关于使用“显示”类型“弹出窗口”的警告

    从今天开始 我们在身份验证对话框中收到开发人员警告 其中包含以下消息 您在大型浏览器窗口或选项卡中使用 弹出窗口 显示类型 为了获得更好的用户体验 请使用我们的 JavaScript SDK 显示此对话框 而不指定显式显示类型 SDK 将为
  • PopupWindow 上的视图可以显示 PopupMenu 吗?

    在 Android API11 中 我在 PopupWindow 内显示一个按钮 我想在单击按钮时显示 PopupMenu 而不关闭 PopupWindow 这有可能吗 我正在实例化并初始化 PopupMenu 但是当我调用 popupMe
  • 如何以编程方式在网站上邀请 Facebook 好友

    我需要的功能是在具有自定义设计的网站页面上向用户显示 Facebook 好友列表 用户可以选择其中的一些好友并发送邀请 在 API v2 0 中 可以通过以下方式获取好友列表 FB api me taggable friends funct
  • 即使用户已登录,FB.getLoginStatus也会返回状态“未知”

    我启用了第三方 cookie 所以这不是问题 我正在使用 google Chrome facebook javascript SDKversion 2 5 当我第一次登录时一切正常 但是当我注销并尝试重新登录时 它会返回status unk
  • 如何关闭selenium运行时弹出的窗口?

    我想关闭弹出窗口 已知窗口名称 然后返回到原始窗口 我该怎么办 如果我无法获得窗口中关闭按钮的常量 那么有什么一般行为可以达到目标吗 使用WebDriver 用Java显示 你可以做这样的事情 instantiate your driver
  • Zeroclipboard 多个元素

    我在代码中创建多个 Zeroclipboard 实例化时遇到问题 每个实例化在调用后都会启动一个弹出窗口 a class xxx href popup url php span FRSDE3RD span a a class xxx hre
  • Facebook FB.login 在 Safari 中有效,但在移动 Safari 中无效

    以下 FB Login 函数在桌面 Chrome FF 和 Safari 中运行良好 但在移动 Safari 中 在 iPhone 4S 上测试 它挂起并且不会返回 FB login 回调 当我使用 Safari 并将用户代理设置为 Saf
  • 在 Facebook 见解上找不到我的应用程序?

    我正在使用社交插件运行一个网站 所以我创建了一个 Facebook 应用程序 然后我想使用 facebook inform 来连接我的网站和应用程序 ps 我还在标题中添加了app id或meta 但我在连接列表中找不到我创建的应用程序 有
  • 从 Facebook 返回的 X-FB-DEBUG 标头是什么?

    我想知道上面提到的标题是什么 当我对 Facebook 进行 JSONP 调用时 或者甚至当我只是访问时 它会包含在响应中http static ak fbcdn net http static ak fbcdn net 我在 facebo
  • 父窗口是否可以通知子窗口是否已关闭?

    I have parent window opener and child popup parent gt opens popup child 假设 在父页面中 我有 js 函数hello 为了让子窗口在子窗口关闭时调用父窗口的 hello
  • 提交表单时角度事件成功,它会打开弹出窗口

    我有一个页面通过角度 http post 将数据发布到 ASPNET MVC 页面 当通话结束后 我必须提交一份表格 基本上我做了以下事情
  • PopupView 没有显示?

    这是 XML 只是一个网络视图
  • 多个 Facebook 评论实例

    每当用户使用 JQuery 执行特定操作时 我都需要在页面上加载多个 Facebook 评论框 http developers facebook com docs reference plugins comments 如果我要一次加载所有评

随机推荐