Маркер доступа Facebook не может быть продлен - PullRequest
1 голос
/ 08 февраля 2012

Я использую Android Android SDK, который я только что скачал с GitHub.

Я понимаю, что токен доступа действителен в течение очень ограниченного времени и должен расширяться при каждом запуске приложения, как описано в документе.https://developers.facebook.com/docs/mobile/android/build/#extend_token

С этим связано 2 проблемы:
1) функция exteAccessTokenIfNeeded () не обновляется, когда токен уже истек (через один или два часа!)

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

из источника SDK:

Intent intent = new Intent();
intent.setClassName("com.facebook.katana",
                    "com.facebook.katana.platform.TokenRefreshService");
...
ResolveInfo resolveInfo =
            context.getPackageManager().resolveActivity(intent, 0);
if (resolveInfo == null) {
        return false;
}

resoveInfo всегдаздесь null.

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

thx Саймон

1 Ответ

2 голосов
/ 22 февраля 2012

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

Альтернатива:

  1. Вы можете использовать график api / auth / access_token, описанный в developers.facebook.com/docs/offline-access-deprecation/

  2. Я пробую запрос от Facebook iOS SDK, и он работает:

GET api.facebook.com/method/auth.extendSSOAccessToken?access_token=

или в формате json. GET api.facebook.com/method/auth.extendSSOAccessToken?format=json&access_token=

Пожалуйста, добавьте префикс https: // ко всем указанным выше URL.

...