Я пытался создать соединение с API Gmail. Это сработало, когда я последовал этому примеру: https://developers.google.com/gmail/api/quickstart/nodejs
Проблема в том, что для этого пользователю требуется перейти по URL-адресу, а затем ввести код аутентификации в CLI. Это возможно на моей локальной машине разработчика, но я не понимаю, как это должно быть сделано при развертывании на производственном сервере в контейнере docker. Кроме того, этот метод требует, чтобы вы сохранили файл в папке проекта, содержащий ваши учетные данные (конфиденциальные данные, которые я, очевидно, не хочу иметь в моем Dockerfile).
Моя вторая попытка была с использованием JWT. Я выполнил следующие шаги: Отправлять почту через Google Apps Gmail, используя делегирование домена сервисного аккаунта в nodejs. Это работает до тех пор, пока я действительно не попытаюсь получить письмо из почтового ящика. Я получаю сообщение об ошибке GaxiosError: unauthorized_client: Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested.
. Я создал учетную запись службы с делегированием домена, поэтому учетная запись должна быть авторизована для любых действий.
Затем я прочитал следующее: «Учетные записи служб работают только с GSuite, потому что вы должны иметь возможность предварительно авторизовать учетную запись службы и предоставить ей доступ к учетной записи пользователя. Невозможно предварительно авторизовать учетную запись Gmail обычного пользователя. Так что вы не можете использовать учетную запись службы с учетной записью Gmail обычного пользователя ». источник: Клиент не авторизован для получения токенов доступа с помощью этого метода Gmail API C#
Я также рассматривал возможность использования только ключа api, но эта опция недоступна для Gmail.
Как, черт возьми, я должен проходить аутентификацию из моего контейнера?