Facebook JS SDK, как получить имя текущего пользователя? - PullRequest
8 голосов
/ 14 февраля 2011

Нужно ли делать вызов API-интерфейса Graph через FB.api, чтобы получить имя текущего пользователя, вошедшего в систему?Или есть более простой / быстрый способ?

Ответы [ 6 ]

11 голосов
/ 07 февраля 2012
FB.api('/me', function(response) {
    $('#name').html("Welcome " + response.name);
});

Это все, что вам нужно.

2 голосов
/ 21 января 2016

Атрибуты имя и фамилия больше не возвращаются запросом входа в FB JS SDK API. Это изменилось когда-то между вер. 2.2 (06/2014) и 2.5 (01/2015).

Причина в том, что запрос на вход в систему возвращает только общедоступные атрибуты, которые fbid и name . Имя и фамилия не являются общедоступными атрибутами и требуют разрешений, предоставленных пользователем. Смотрите здесь .

Мы используем «угадай обходной путь» - если атрибут name содержит более 1 слова, мы разбиваем их на атрибуты firstname и lastname или заполняем имя от имени. В некоторых ситуациях это лучше / проще, чем беспокоить пользователей разрешениями, проверкой ответов, обратными вызовами и т. Д.

1 голос
/ 14 февраля 2011

Вы можете использовать FB.api следующим образом

function fqlQuery(){
         FB.api('/me', function(response) {
              var query = FB.Data.query('select name,email,hometown_location, sex, pic_square from user where uid={0}', response.id);
              query.wait(function(rows) {
                uid = rows[0].uid;
                document.getElementById('name').innerHTML =
                  'Your name: ' + rows[0].name + "<br />" +
                  'Your email: ' + rows[0].email + "<br />" +
                  'Your hometown_location: ' + rows[0].hometown_location + "<br />" +
                  'Your sex: ' + rows[0].sex + "<br />" +
                  'Your uid: ' + rows[0].uid + "<br />" +
                  '<img src="' + rows[0].pic_square + '" alt="" />' + "<br />";
              });
         });
     }
1 голос
/ 14 февраля 2011

Да, вы должны использовать вызов API, так как он не закодирован в токене доступа или любой другой информации, передаваемой приложению.

Если проблема связана с производительностью, вы, конечно, можете кэшировать результат.

0 голосов
/ 20 июня 2012

Javascript SDK, который есть в Facebook, позволяет вам получить имя, фамилию (не требующую специального разрешения), историю обучения и многое другое, что есть в профиле пользователя Facebook. Но чтобы получить «конфиденциальную» информацию, пользователь должен одобрить ваше приложение (если они этого еще не сделали), а затем утвердить «конфиденциальную» информацию, такую ​​как история образования. Страница на http://www.virtualsecrets.com/facebook-user-data-on-webpage-form.html показывает весь процесс работы с javascript SDK и некоторую информацию о том, как настроить приложения с веб-страницами.

0 голосов
/ 14 февраля 2011

Хорошо называть graph api call, чтобы получить User name.Вы также можете запросить таблицу Пользователь , чтобы получить имя пользователя.Это зависит от тебя, что тебе нравится?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...