Я разрабатываю приложение, которое обращается к API Google (начиная с API календаря), используя OAuth2 и клиентские библиотеки google для этого (находится на Appengine и GWT BTW).
Я выполнил мой OAuth2Call
back servlet, расширив Google 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) Я не вижу, как установить функцию автоматического обновления. На этих страницах описаны методы:
Но я не вижу, где добавить слушателя обновления. В классе GoogleAuthorizationCodeFlow.Builder
такого метода нет, в отличие от класса Credential.Builder
ИЗМЕНИТЬ
После отладки кода больше, когда возвращается учетная запись (в методе onSuccess()
), похоже, что набор RefreshListener
уже установлен..... так что, возможно, это по умолчанию, и моя единственная проблема - я не получив refresh_token
, несмотря на просьбу об этом.
Возможно, вам нужно также просмотреть настройки в консоли Google API?