Как вы получаете долгоживущие токены доступа из API Graph Facebook (аутентификация на стороне сервера)?

Поскольку Facebook удаляет разрешение offline_access, я хочу перенести наш веб-сайт для использования новой системы.

Я нашел этот документ на веб-сайте Facebook: https://developers.facebook.com/roadmap/offline-access-removal

Однако, когда я обрабатываю кого-то с серверной аутентификацией, я получаю этот ответ:

access_token => BLAHBLAHBLAHdontusemytokensilly
expires => 4992

Когда я пытаюсь использовать точку доступа (в этом документе) для расширения маркера доступа более чем на пару часов, я получаю следующее:

access_token => BLAHBLAHBLAHdontusemytokensilly
expires => 4990

Согласно этому документу, OAuth на стороне сервера должен получить токен, который длится 60 дней, я не понимаю, почему я не получаю его обратно.

Я действительно не хочу отправлять наших пользователей через перенаправление OAuth каждые 2 часа.

Есть идеи? Спасибо!

UPDATE

В соответствии с запросом, вот поток, который я принимаю (в браузере):

Сначала я перенаправил пользователя сюда:

https://www.facebook.com/dialog/oauth?client_id=BLAHBLAH&redirect_uri=http%3A//localhost/user-social/facebook/redirect&scope=user_about_me%2Cuser_events%2Cuser_interests%2Cuser_likes%2Cfriends_likes%2Cuser_location%2Cuser_status % 2Cuser_subscriptions% 2Cfriends_subscriptions% 2Cemail% 2Ccreate_event% 2Cpublish_stream% 2Crsvp_event% 2Cpublish_actions% 2Cuser_actions.music% 2Cfriends_actions.music% 2Cuser_actions.news% 2Cfriends_actions.news% 2Cuser_actions.video% 2Cfriends_actions.video% 2Cmanage_pages

Это перенаправляет пользователя сюда:

http://localhost/user-social/facebook/redirect?code=BLAHBLAHBLAHsomeawesomecode#_=_

Затем я запросил токен доступа так:

https://graph.facebook.com/oauth/access_token?client_id=BLAHBLAH&redirect_uri=http%3A//localhost/user-social/facebook/redirect&client_secret=BLAHBLAHsomeawesomesecret&code=BLAHBLAHBLAHsomeawesomecode

Я получаю это резюме от Facebook:

access_token=BLAHBLAHBLAHdontusemytokensilly&expires=4057

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

Однако, поскольку он недолговечный, я попытался обменять его на долгоживущий токен:

https://graph.facebook.com/oauth/access_token?client_id=BLAHBLAH&redirect_uri=http%3A//localhost/user-social/facebook/redirect&client_secret=BLAHBLAHsomeawesomesecret&grant_type=fb_exchange_token&fb_exchange_token=BLAHBLAHBLAHdontusemytokensilly

Вот что вернул Facebook:

access_token=BLAHBLAHBLAHdontusemytokensilly&expires=3967

Один и тот же access_token возвращается в обоих запросах.

UPDATE 2

Я положил вышеупомянутый токен доступа вОтладчик Facebook и вот что вернуло:

App ID: 
BLAHBLAH
User ID:    
211800900 : David Barratt
Issued: 
Unknown
Expires:    
1347303600 (in 40 minutes)
Valid:  True
Origin: Web
Scopes: create_event create_note email friends_actions.music friends_actions.news friends_actions.video friends_likes friends_subscriptions manage_pages photo_upload publish_actions publish_stream rsvp_event share_item status_update user_about_me user_actions.music user_actions.news user_actions.video user_events user_interests user_likes user_location user_status user_subscriptions video_upload

UPDATE 3

После удаления всех моих разрешений и повторной авторизации приложения (как предложено @phwd). API Facebook возвращает это:

access_token=BLAHBLAHBLAHdontusemytokensilly

Означает ли это, что мне вернули долгоживущий access_token? если так, то где истечение?

UPDATE 4

Когда я запускаю вышеупомянутый access_token через отладчик Facebook, я получаю следующий результат:

App ID: 
BLAHBLAH
User ID:    
211800900 : David Barratt
Issued: 
1347309538 (39 minutes ago)
Expires:    
Never
Valid:  True
Origin: Web
Scopes: create_event create_note email friends_actions.music friends_actions.news friends_actions.video friends_likes friends_subscriptions manage_pages photo_upload publish_actions publish_stream rsvp_event share_item status_update user_about_me user_actions.music user_actions.news user_actions.video user_events user_interests user_likes user_location user_status user_subscriptions video_upload

Кажется, это решает исходную проблему, но странно, что access_tokens являются неопределенными, а не длится предписанные 60 дней.

Любые идеи о том, почему это может иметь место?

Ответы на вопрос(2)

Ваш ответ на вопрос