Кодовый сервлет для чтения / записи данных Google Sheets
Я пишу сервлет, который читает и записывает данные в документе Google Sheets. Документ принадлежит или используется совместно с учетной записью пользователя, обращающегося к сервлету, поэтому они должны проходить аутентификацию с использованием OAuth2.
Я написал приложение командной строки (Java), которое работает для получения доступа с помощью клиентской библиотеки Google API. Я сгенерировал идентификатор клиента типа приложения "другое". Затем я завернул это приложение в Servlet extends HttpServlet
(работает в автономном причале). Поток останавливается на
Credential credential =
new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver())
.authorize("user");
поскольку authorize()
вызовите выходы STDERR (т. е. журнал Jetty) URL авторизации и прослушивает сокет, пока не услышит действительный аутентифицированный / авторизованный токен. Даже если сервлет может перехватить URL-адрес аутентификации из STDERR, он не сможет отправить его обратно пользователю для щелчка, потому что 1> он остановлен на authorize()
и 2> он может отправить только один ответ HTML.
Я пытаюсь следовать документации Google. Клиентские библиотеки API Google. Приложения Java / веб-сервера, но прилагаемый код предназначен для Календаря, а в документе не объясняется, как использовать его в сервлете (или в любом другом). Этот документ также связан с документацией Google Identity Platform / OAuth 2.0 для приложений веб-сервера, но он начинается с предложения документировать проект Java, а затем предоставляет код и руководство только для PHP, Python, Ruby, HTTP/REST. В блогах, других документах Google, других продуктах, других целях OAuth2, а также во многих версиях API Google и OAuth есть непонятные инструкции.
Где я могу найти хорошие документы по процедуре реализации, особенно с примером кода? Пример проекта? Или просто указания по переносу приложения командной строки на сервлет? Спасибо.