Jak uzyskać token offline i token odświeżania i automatycznie odświeżać dostęp do interfejsu API Google

Zajmuję się tworzeniem aplikacji, która uzyskuje dostęp do interfejsów API Google (począwszy od Calendar API) za pomocą OAuth2 i bibliotek klienta google (w Appengine i GWT BTW).

Zaimplementowałem mojeOAuth2Call tylny serwlet, rozszerzający GoogleAbstractAppEngineAuthorizationCodeCallbackServlet.

Mam to działa, mam dostęp i mogę przeglądać kalendarze itp., Ale mam dwa problemy:

1) Nie otrzymuję tokena odświeżania, mimo wyraźnego żądania dostępu w trybie offline:

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) Nie widzę, jak ustawić funkcję automatycznego odświeżania. Te strony opisują metody:

Klasa Credential.BuilderKlasa CredentialStoreRefreshListener

Ale nie widzę, gdzie dodać słuchacza odświeżania. Nie ma takiej metody wGoogleAuthorizationCodeFlow.Builder klasa, w przeciwieństwie doCredential.Builder klasa

EDYTUJ Po debugowaniu kodu więcej, gdy poświadczenie powróci (wonSuccess() metoda) wydaje się miećRefreshListener ustawiona już ..... więc może to jest ich domyślnie, a moim jedynym problemem jest to, że nie dostajęrefresh_token, pomimo proszenia o to.

Może trzeba także przejrzeć ustawienia w konsoli Google API?

questionAnswers(3)

yourAnswerToTheQuestion