Как получить офлайн токен и обновить токен и автоматически обновить доступ к Google API
m разрабатывает приложение, которое обращается к API Google (начиная с Calendar API) с использованием OAuth2 и клиентских библиотек Google для этого (на Appengine и GWT BTW).
Я реализовал свойOAuth2Call
задний сервлет, расширяющий гугл.AbstractAppEngineAuthorizationCodeCallbackServlet
У меня это работает, я получаю доступ и могу просматривать календари и т. Д., Но у меня есть две проблемы:
1) Я не получаю токен обновления, несмотря на явный запрос автономного доступа:
public static GoogleAuthorizationCodeFlow newFlow( String scope ) throws IOException {
GoogleAuthorizationCodeFlow.Builder builder = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT,
JSON_FACTORY,
getClientSecrets(),
Collections.singleton( scope ) );
builder.setCredentialStore( new AppEngineCredentialStore() ).setAccessType("offline");
return builder.build();
}
2) Я не вижу, как установить функцию автоматического обновления. Эти страницы описывают методы:
Класс Credential.BuilderКласс CredentialStoreRefreshListenerНо я могу'не вижу, где добавить слушателя обновления. Там нет такого метода вGoogleAuthorizationCodeFlow.Builder
класс, в отличие отCredential.Builder
учебный класс
РЕДАКТИРОВАТЬ После отладки кода больше, когда учетные данные возвращаются (вonSuccess()
метод), кажется, естьRefreshListener
установить уже ..... так что, может быть, этопо умолчанию, и моя единственная проблема - это яя не получаюrefresh_token
несмотря на просьбу об этом.
Может быть, нужно пересмотреть настройки в консоли Google API также?