Facebook offline_access устарел, что делать на Windows Phone?

Я работаю над приложением для Windows Phone, которое использует API Facebook. Для этого мне нужно, чтобы пользователь вошел в систему и авторизовал мое приложение, чтобы я мог получить access_token. Я уже так сделал, работает нормально.

Вопрос: как продолжать использовать Facebook API при следующем запуске приложения, не заставляя пользователя снова входить в систему?

Что я делаю: когда пользователь входит в систему, я сохраняю access_token и срок действия. Позже я могу использовать access_token при вызовах API. Все в порядке.

Проблема: из-за того, что offline_access больше не работает, токены доступа, которые я получаю, действительны в течение 60 дней. Это означает, что через 60 дней они перестанут работать. Могу ли я что-то сделать, чтобы обновить эти токены, не запрашивая у пользователя повторный вход в систему?

Мое исследование: я прочитал документацию, но, кажется, там упоминаются только Android и iOS. Хотя я предполагаю, что это будет похоже на Windows Phone, я не могу понять, что делать. В библиотеках Facebook для этих других платформ есть что-то вроде:

facebook.extendAccessTokenIfNeeded(this, null);

Мне не удалось найти аналогичный метод для Windows Phone. Хотя я где-то читал, что это на самом деле не работает для Android, это намекает на то, что должен быть способ сделать это.

Я читал о новой конечной точке, позволяющей обновлять токены доступа, но, похоже, она может расширять недолговечные токены только до долгоживущих. Для меня это немного неясно из документации здесь (раздел 4): https://developers.facebook.com/roadmap/offline-access-removal/

Любая помощь приветствуется, спасибо.


person Lyubomir Dokov    schedule 30.05.2012    source источник


Ответы (1)


Следуйте инструкциям по удалению Offine Access по предоставленной вами ссылке. У него есть вызов API, который вы можете использовать для получения долгоживущего токена доступа для пользователя — это замена offline_access.

В частности, см. Сценарий 4.

Теоретически Windows Mobile должна подпадать под исключение 2/3. Посмотрите, есть ли в Windows Mobile SDK возможность доступа к access_token аналогично iOS и Android.

person Niraj Shah    schedule 30.05.2012
comment
Как я уже упоминал, я уже читал о новой конечной точке для обновления токенов. Кажется, это работает только для превращения короткоживущего токена в долгоживущий. Это правильно? У меня уже есть долгоживущий токен (60 дней), вопрос в том, что сделать, чтобы обновить его до того, как эти дни пройдут, и пользователю придется снова войти в систему? - person Lyubomir Dokov; 30.05.2012
comment
Вы можете использовать тот же вызов API, чтобы продлить срок службы долгоживущего токена, как указано в документации. - person Niraj Shah; 30.05.2012
comment
Вы имеете в виду, что я могу использовать эту новую конечную точку? Вы имеете в виду вызов API (раздел 4 ссылки, которую я разместил)? Если это так, то текст там должен быть неверным, потому что он говорит: Используя новую конечную точку ниже, вы сможете продлить срок действия существующего, не истекшего, недолговечного пользователя access_token. . Обратите внимание, что конечная точка может использоваться только для продления краткосрочных пользовательских access_token. Если вы передаете access_token с длительным сроком действия, конечная точка просто передаст вам тот же самый access_token без изменения или продления срока действия. - person Lyubomir Dokov; 31.05.2012
comment
Я предполагаю, что это означает, что вы должны получить новый недолговечный access_token от пользователя при следующем входе в систему. Это означает, что вы должны изящно отклонять токены старше 60 дней и ждать, пока пользователь снова войдет в систему. - person Niraj Shah; 31.05.2012
comment
Что ж, спасибо, но мы возвращаемся к моему первоначальному вопросу: как продолжать использовать Facebook API при следующем запуске приложения, не заставляя пользователя снова входить в систему? Или это невозможно? - person Lyubomir Dokov; 03.06.2012
comment
Вы можете продолжать использовать его, используя долгоживущий токен доступа, пока не истечет срок его действия. После этого вы не сможете получить доступ к API, пока пользователь снова не войдет в систему. - person Niraj Shah; 06.06.2012