Пользователь Facebook с fb ('/me', function (user) {}) не распознается
-
25-10-2019 - |
Вопрос
Я имею дело с этой ошибкой пару дней. Раньше он работал нормально один и тот же код, но теперь я застрял с этой ошибкой. С тех пор я изменил хост. Может, это может быть? Когда я вхожу в систему со своей учетной записью Facebook, и приложение одобрено, я все еще не могу получить идентификатор пользователя и другие данные по умолчанию.
Вот сценарий, пожалуйста, предложите что угодно:
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script src="http://www.oneslike.me/js/jquery-1.6.2.min.js"></script>
<script>
$(document).ready(function(){
FB.init({
appId : 'YOUR API KEY HERE',
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload(); //When logged reload
});
FB.api('/me', function(user){
if(user.id!=null){
alert("Logged user with FB_id: "+user.id);
$("#login_div").hide(); $("#data_div").show();
var user_data = '<img src="http://graph.facebook.com/'+user.id+'/picture"><br/><a href="'+user.link+'">'+user.name+'</a>';
document.getElementById('data_div').innerHTML(user_data);
}
else
{
alert("Not logged user");
$("#login_div").show(); $("#data_div").hide();
}
});
});
</script>
<div id="login_div" style="display: none;">
<fb:login-button data-scope="user_birthday">Login with Facebook</fb:login-button>
</div>
<div id="data_div" style="display: none;">
</div>
Решение
Может быть, что FB.init()
не закончил загружать и инициализацию сеанса, когда вы звоните FB.api()
? Я столкнулся с аналогичной проблемой. Что исправило для меня FB.api()
вызывать FB.getLoginStatus()
, вот так:
FB.getLoginStatus(function(response) {
FB.api(function(response){ });
});
Похоже, что задержка/убедиться, что сеанс должным образом инициализирован перед вызовом API. Я надеюсь, что это тоже работает для вас.