Как получить токен доступа из подписанного запроса Facebook? - PullRequest
7 голосов
/ 15 сентября 2011

Мы используем Facebook Javascript SDK для аутентификации наших пользователей.

Как только пользователь проходит аутентификацию, он получает файл cookie fbsr_ , содержащий подписанный запрос.

Затем мы используем AJAX для размещения некоторой информации на нашем сервере. Сервер получает cookie с подписанным запросом, но когда сервер анализирует подписанный запрос (модифицированный python SDK) в cookie, он декодирует объект JSON как:

{
   "algorithm": "HMAC-SHA256",
   "code": "2.AQDBJ3-ZpURb9P4T.3600.1316037600.1-786359552|BNK6FGOAkvMs7slboQMSIEJYDWc",
   "issued_at": 1316031333,
   "user_id": "786359552"
}

Это противоречит тому, что подписанная документация запроса говорит, что мы должны получить.

Серверу нужен токен доступа, поэтому он может получить дополнительную информацию с помощью GraphAPI.

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

Ответы [ 2 ]

2 голосов
/ 17 сентября 2011

используя новый рабочий процесс oauth2 с javascript sdk, будет доступен токен пользователя.

После аутентификации вы можете найти токен с чем-то вроде этого

FB.getLoginStatus(function(response) {

              if (response.status === 'connected') { 

                alert(response.authResponse.accessToken);

              }
        });

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

1 голос
/ 25 ноября 2011

Правильный:

FB.getLoginStatus(function(response) {

          if (response.status === 'connected') { 

            alert(response.session.access_token);

          }
    });
...