FQL Javascript Access Token - PullRequest
       8

FQL Javascript Access Token

0 голосов
/ 29 января 2011

Я довольно новичок в использовании FQL в любой форме, извините, если это простой вопрос, но я не могу обойти его.

У меня есть этот код, который пытается получить другаlist:

var query = FB.Data.query('SELECT '+response.id+', '+response.name+' FROM friendlist from user where uid=' + response.id);

Но я продолжаю получать ответ:

"Активный токен доступа должен использоваться для запроса информации о текущем пользователе."

Когда я извлекаю объект ответа из запроса / me, я вижу всю свою информацию, такую ​​как местоположение, имя, работа и т. Д. Но я не вижу токена доступа

Код начинается какthis:

window.fbAsyncInit = function() {
            FB.init({appId: '12...0', status: true, cookie: true, xfbml: true});

            /* All the events registered */
            FB.Event.subscribe('auth.login', function(response) {
                // do something with response
                login();
            });
            FB.Event.subscribe('auth.logout', function(response) {
                // do something with response
                logout();
            });

            FB.getLoginStatus(function(response) {
                if (response.session) {
                    // logged in and connected user, someone you know
                    login();
                }
            });

Как получить токен доступа и предоставить его вместе с FQL-запросом?

Спасибо за любые советы заранее!

1 Ответ

4 голосов
/ 29 января 2011

Токен доступа, который вы должны использовать для выполнения всех типов запросов к API Graph (включая запросы FQL), предоставляется facebook после успешного входа пользователя.

Если вы используете firebug, выполните console.log(response) после того, как пользователь войдет в систему, чтобы увидеть полученный вами объект.

 FB.Event.subscribe('auth.login', function(response) {
     console.log(response);   
     // do something with response
     login();
 });

Он должен содержать 3 свойства: perms, session и status. perms содержит список с разрешениями, предоставленными пользователем, status это статус текущего пользователя. Для вас важна собственность session. Этот объект также является объектом, который среди прочего имеет свойство access_token (строку), которое можно использовать для выполнения запросов к API.

Итак, ваш запрос может выглядеть так:

var query = FB.Data.query('SELECT '+response.id+', '+response.name+' FROM friendlist from user where uid=' + response.id + '&access_token='+response.session.access_token);

Если вы хотите получить сеанс лучше, используйте FB.getSession, который возвращает текущий сеанс. Подробнее здесь .

Удачи!

...