问题描述
|
我正在尝试使用javascript检查用户是否已登录Facebook(是否已登录,与我的应用程序无关)。
我尝试在FB.init之后使用以下代码:
FB.getLoginStatus(function(response) {
alert(response.status);
});
edge.create工作正常。
解决方法
有一些技巧可以帮助您,但在您遇到的情况下不行。 https://grepular.com/Abusing_HTTP_Status_Codes_to_Expose_Private_Information
这是简单的示例:
<html>
<head>
</head>
<body>
// At the end of page will be good
<script>
function logged() {
alert(\'logged\');
}
function notlogged() {
alert(\'not logged\');
}
</script>
<script src=\"http://www.facebook.com/ajax/composer/attachment/question/question.php\" onload=\"logged()\" onerror=\"notlogged()\">
</body>
</html>
,if (FB.getSession() != null) {
FB.api(\'/me\',function(response){
alert (\"Welcome \" + response.name);
})
}
需要注意的是:用户需要授权您的应用程序才能检测是否已登录。我相信,如果没有此api,没有它就无法检测到它:您可以添加like按钮等等,但不能与fb状态交互。
http://developers.facebook.com/docs/guides/web/
,FB.getLoginStatus(function(response) {
if (response.authResponse) {
// alert(\'Welcome! Fetching your information.... \');
FB.api(\'/me\',function(response) {
alert(\'Good to see you,\' + response.name + \'.\');
});
}
});