Как получить офлайн токен и обновить токен и автоматически обновить доступ к 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 также?