Подтвердить что ты не робот

Возможно ли продлить токены Facebook с расширениемAccessTokenIfNeeded в приложении для Android?

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

Мой вопрос

Кто-нибудь успешно обновил токен, используя функцию extendAccessTokenIfNeeded? Если у вас был успех, какая версия была для устройства (или эмулятора)?

Фон

Я получил электронное письмо от Facebook, в котором говорится, что разрешение offline_access будет устаревать с 1 мая 2012 года, а Facebook рекомендовал обновить свой последний SDK. Хорошо.

Я обновил до последнего SDK, официальное приложение Facebook установлено на моем устройстве и (в конце концов!) Single Sign On работает нормально. Я получаю 60-дневные жетоны, которые снова в порядке.

Проблемы начались, когда я попытался использовать extendAccessTokenIfNeeded (контекст контекста, ServiceListener serviceListener). Я не мог заставить его обновить токены в течение более длительного времени. Я ждал 24 часа между попытками, но токен не обновлялся. Единственный способ получить обновленный токен - выйти из системы и войти в систему. Это также произошло, когда я использовал пример проекта "Hackbook".

Наиболее очевидным ответом является то, что я делаю что-то не так, но

Альтернативы расширениюAccessTokenAsNeeded()

В токены могут быть расширены с помощью Graph API. Однако это имеет недостаток . Преимущество состоит в том, что пользователю не нужно было устанавливать официальное приложение Facebook на своем устройстве.

Другие идеи и проблемы

Изменив функцию extendAccessTokenIfNeeded в Facebook.java, чтобы всегда возвращать true, я думаю, что я получил его, чтобы обновить один раз. (Причина, по которой я говорю "думаю", состоит в том, что она не повторит поведение, и я подозреваю, что мне нужно подождать еще 24 часа перед любым шансом на другой успех)

Я заметил, что Hackbook требует , чтобы быть импортирован. Это доступно только для API 8. Это значит что Facebook SSO (в частности, обновление токена) может работать только на устройствах с API 8 и более поздними версиями?

, довольно старый. Возможно, именно поэтому токены не обновляются на эмуляторах, запускающих API 8 и более поздних версий?

И, наконец, все это относится только к тем людям, которые имеют официальное приложение Facebook установлено! Другой метод должен быть завершен для тех людей без официального приложения Facebook (просто жалуйтесь прямо сейчас!)

Соответствующие ссылки на Facebook

Связанные вопросы

4b9b3361

Ответ 1

Я не знаю разработки Android, но если у вас возникли проблемы с этой функцией, возможно, есть аналогичная функция CURL в Android, которая позволит вам позвонить https://graph.facebook.com/oauth/access_token?
client_id=APP_ID& client_secret=APP_SECRET& grant_type=fb_exchange_token& fb_exchange_token=EXISTING_ACCESS_TOKEN

(google раскрыл: http://thesoftwarerogue.blogspot.com/2010/05/porting-of-libcurl-to-android-os-using.html о том, как CURL с Android)

Ответ 2

Попробуйте изменить время REFRESH_TOKEN_BARRIER, чтобы вам не приходилось ждать 24 часа каждый раз, когда вы хотите протестировать. Я поменял мой на 2 минуты, и я смог увидеть, что токен доступа фактически расширялся, когда я заново запустил приложение через 2 минуты.