Убедитесь, что в Test Console и на вашем сайте вы используете один и тот же идентификатор приложения и убедитесь, что пользователь предоставил разрешение email
вашему приложению!
Это можно сделать с помощью простого вызова API Graph:
FB.api('/me/permissions', function(response){
if (response && response.data){
var userPermissions = response.data.shift();
if (userPermissions.email){
alert('User is granted email permission');
} else {
alert('User is NOT granted email permission');
}
} else {
// No response or results from the Graph API
}
});
Пара вещей, о которых вы должны знать!
FB.Data.*
больше нет! Это устарело,без документов и больше не должен использоваться!Это просто вопрос времени, когда он исчезнет из кода JavaScript SDK ... - Вам просто не нужен дополнительный вызов, чтобы просто определить идентификатор текущего пользователя (в большинстве случаев он у вас уже есть, простоотметьте
FB.getUserID()
), в FQL
используйте me()
для ссылки на текущего пользователя.
Перепишите использование FB.Data.*
и query.wait
с помощью:
FB.api('/fql', {q:'YOUR_FQL_QUERY_HERE'}, function(response){
var rows = response.data;
});
В вашем случае те же результаты могут быть получены при вызове Graph API без использования FQL:
FB.api('/me', {fields: 'id,name,email'}, function(response){
// response -> {id: UID, name: 'User Name', email: 'user@email.dz'}
console.log(response);
});