Facebook API共享提要弹出窗口有时会被阻止

时间:2015-07-01 11:20:33

标签: javascript facebook-javascript-sdk

我有一个页面,您可以分享一些内容。

首先使用FB.login()

登录
Error: file is encrypted or is not a database

然后我使用以下分享

FB.login(function(response) {
    if (response.authResponse) {
        sharePost(imgName,socket);
    } else {
        //do nothing if not logged in....
    }
}, {scope: 'public_profile,email,user_friends'});

有时它会在登录后阻止弹出窗口。有时候不会。

我考虑过删除FB.login(),但我需要其他操作的范围。

1 个答案:

答案 0 :(得分:0)

您需要在用户交互(=鼠标单击)上使用FB.ui对话框,而不是FB.login的异步回调函数。现代浏览器将其检测为未经授权的弹出窗口并阻止它。此外,在授权后立即提供订阅源对话框是个坏主意。显示登录按钮并使用FB.login,然后显示分享按钮并使用FB.ui Feed或FB.ui分享。

顺便说一句,您甚至不需要为FB.ui用户授权,因此您可以跳过FB.login并在真正需要时使用它。