Маркер доступа Facebook не может быть продлен
Я использую Android Android SDK, который я только что скачал с GitHub.
Я понимаю, что токен доступа действителен в течение очень ограниченного времени и должен расширяться каждый раз, когда приложение запускается, как описано в документе. https://developers.facebook.com/docs/mobile/android/build/
Есть 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 всегда является нулевым здесь.
есть идеи как продлить токен? я не хочу вызывать функцию authenticate() все время, пока истекает токен. это полностью разрушило бы пользовательский опыт!
спасибо Саймон
1 ответ
Facebook android sdk подключается к службе обновления токенов, чтобы расширить токен доступа, но эта служба является частью приложения Android для Facebook, а это означает, что пользователю вашего приложения необходимо сначала установить нативный Facebook.
Альтернатива:
Вы можете использовать график api /auth/access_token, описанный в developers.facebook.com/docs/offline-access-deprecation/
Я пытаюсь запрос от 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 выше.