gpt4 book ai didi

javascript - Facebook API : checking if user is logged in on connect

转载 作者:行者123 更新时间:2023-12-02 17:24:57 27 4
gpt4 key购买 nike

我一直在尝试让我的网站检查用户是否在页面加载时登录,但尽管遵循了 API 说明,我仍无法使其正常工作,下面是一个示例:

<!DOCTYPE html>
<html>
<head>
<title>My Facebook Login Page</title>
</head>
<body>
<div id="fb-root"></div>
<script>
alert('hello');
window.fbAsyncInit = function() {
FB.init({
appId : 'APP_ID',
status : true,
cookie : true,
xfbml : true,
oauth : true
});

FB.getLoginStatus(function( response ) {
console.log(response);
alert('hello2');
});

FB.Event.subscribe('auth.statusChange', function(response) {
alert('hello2');
});

FB.Event.unsubscribe('auth.statusChange');
};
(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>
</body>
</html>

除非用户登录,否则永远不会触发警报,如果用户注销,则该警报或该代码块内的任何内容都不会触发。

最佳答案

在上面的示例中,删除尾随逗号 (oauth: true,)//这可能只是来自复制/粘贴,但希望消除任何陷阱

对于调试,控制台日志记录是我的首选方法,但由于您甚至没有看到警报,因此您的情况有点棘手。

FB.Event.subscribe("auth.statusChange", function(response) {
console.log(response);
});

FB.Event.unsubscribe("auth.statusChange");
// If you were to get subscribe to work, think about unsubscribing at some point to, since most likely that's only for an initial check

或者,尝试使用 getLoginStatus 而不是事件订阅。

FB.getLoginStatus(function( response ) {
console.log(response);
});

响应应该为您提供一个对象,您可以检查 response.status ,其可能的值为:connected、not_authorized 或unknownresponse.authResponse 将包含以下属性:accessToken、expiresIn 等。

关于javascript - Facebook API : checking if user is logged in on connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10404557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com