Новый токен доступа без перенаправления в журнал авторизации - PullRequest
0 голосов
/ 15 января 2012

ПЕРЕСМОТРЕННЫЙ ВОПРОС

Я понимаю, используя ответ на: $facebook->api('/me?access_token='.$access_token) определит, нужен ли вам новый токен доступа.Поэтому мой вопрос, приведенный ниже, можно упростить до следующего:

Если пользователь не деавторизовал приложение, существует ли одобренный FB способ получения нового токена доступа без перенаправления в журнал авторизации ?


СТАРЫЙ ВОПРОС

Как указано в этот вопрос , Facebook (в автономном режиме) токены доступаистекает по разным причинам. Это решение предоставлено Facebook для повторной авторизации и получения нового токена автономного доступа.

Однако это решение предполагает, что мне нужно следующее поведение:

  1. Перенаправить мойдиалог авторизации пользователей
  2. Если они не деавторизовали мое приложение, я автоматически получаю новый токен доступа
  3. Если они деавторизовали мое приложение, они получат диалоговое окно аутентификации для повторной авторизации.

Однако

  • Если пользователь не деавторизовал мое приложение, я хотел бы получить новый токен доступа.
  • Еслипользователь имеет , я не хочу диалог авторизации (или новый токен доступа).
  • В идеале это может быть сделано в PHP без перенаправления на диалоги авторизации

1 Ответ

0 голосов
/ 07 февраля 2012

Если ваше приложение авторизовано пользователем, вы можете получить новый токен доступа с помощью этого javascript:

    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            user_id = response.authResponse.userID;
            access_token = response.authResponse.accessToken;
        }
     }

Это не будет запрашивать у пользователя перенаправление в журнал авторизации. Простые вещи, задокументированные в Facebook getLoginStatus.

Это, конечно, не сработает, если пользователь не вошел в Facebook, не авторизовал ваше приложение и не зашел на вашу страницу (для моих целей это предположение было правильным). Но вы можете запросить разрешение offline_access и сохранить новый ключ доступа для последующего использования.

Мой вопрос в идеале сказал, что это будет обрабатываться на стороне сервера. К сожалению, поведение этого php:

$access_token = $facebook->getAccessToken();

не идентичен ответу токена доступа, сгенерированному Javascript SDK. См. Этот вопрос.

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