Как получить офлайн токен и обновить токен и автоматически обновить доступ к Google API

Я разрабатываю приложение, которое обращается к 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 также?

Ответы на вопрос(3)

Ваш ответ на вопрос