Ранее сегодня поток пользователей Facebook нашего веб-приложения переставал работать для некоторых пользователей. Когда мы пытаемся получить текущий профиль, возвращается ошибка. Он утверждает, что токен доступа, который мы только что создали, перенаправляя пользователя в поток входа OAuth, отклонен.
Приведенная причина:
Токен доступа недействителен, так как пользователь не включил приложение более чем за 90 дней.
Для меня это не имеет смысла, поскольку мы не храним токен доступа в любом месте, кроме текущего сеанса, и воссоздаем его каждый раз, когда пользователь входит в систему с Facebook.
Элемент stacktrace из Spring Social для вызова GET /me
выглядит следующим образом:
ERR c.s.f.v.resource.AuthenticationResource Exception when connecting with Facebook
org.springframework.social.RevokedAuthorizationException: The authorization has been revoked. Reason: The access token is invalid since the user hasn't engaged the app in longer than 90 days.
at org.springframework.social.facebook.api.impl.FacebookErrorHandler.handleFacebookError(FacebookErrorHandler.java:85)
at org.springframework.social.facebook.api.impl.FacebookErrorHandler.handleError(FacebookErrorHandler.java:59)
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:775)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:728)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:702)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:350)
at org.springframework.social.facebook.api.impl.FacebookTemplate.fetchObject(FacebookTemplate.java:220)
at org.springframework.social.facebook.api.impl.FacebookTemplate.fetchObject(FacebookTemplate.java:215)
Вероятно, проблема связана с изменениями в API Facebook, но я не вижу, как это влияет на краткосрочные токены доступа, которые мы создаем на каждый вход.