Доступ к нескольким учетным записям Gmail через один микросервис (приложение). NET5

#c# #gmail-api

Вопрос:

Я читал некоторые связанные с этим вопросы, но они не связаны на 100%, так как требования немного различаются.

У меня есть веб-приложение .NET5, своего рода пользовательский CRM для компании, в которой я работаю. У нас есть несколько пользователей (сотрудники, мои коллеги), которые могут создавать предложения и т. Д. Кроме того, они могут отправлять эти предложения клиентам. К каждому пользователю прикреплено имя учетной записи электронной почты.

В настоящее время это приложение работает так, что я создал и включил API Gmail для каждой учетной записи электронной почты и авторизовал ее самостоятельно вручную.

Проблема в том, что каждый раз, когда нам нужно добавить нового пользователя (например, нового сотрудника) — мне нужно включить Gmail API его учетной записи электронной почты (учетной записи компании, но это не имеет значения), вручную добавить файл учетных данных и токен на сервер, аутентифицировать его, и только тогда приложение сможет использовать электронную почту.

Я знаю, что есть много сайтов (например, в понедельник и т. Д.), Которые имеют автоматизацию и интеграцию с Gmail, и в любое время, когда я хочу какой — то интеграции, Я получаю уведомление с помощью экрана OAuth и одобряю его. Я хочу, чтобы то же самое было и в моем заявлении.

Я понимаю, что мне нужно создать какие-то «глобальные учетные данные Gmail», которые будут «добавлены» с помощью токенов учетной записи или что-то в этом роде (каждый пользователь приложения будет авторизован и разрешит доступ)? Просто не могу найти правильную документацию для этого.

Мой сервер написан на сервере Blazor, .NET5.

Я был бы признателен, если бы кто-нибудь объяснил основные этапы этой процедуры.

Спасибо!

Комментарии:

1. «каждый раз, когда нам нужно добавлять нового пользователя … включите Gmail API … добавьте файл учетных данных и токен вручную на сервер, аутентифицируйте его» вы пытаетесь выполнить взаимодействие между машинами, для чего требуются эти учетные данные. Но если вы переключитесь на использование OAuth и разрешите пользователям вашего приложения войти в систему со своими учетными данными и одобрите области действия (Gmail: r w), вы сможете использовать токен, возвращенный Google в вашем приложении, для отправки писем от их имени.

2. Я не понимаю I've created and enabled Gmail API for each email account, and authorized it, by myself, manually . API-интерфейсы обычно включены для проекта, а не для учетной записи support.google.com/googleapi/answer/6158841?hl=en . Можете ли вы предоставить более подробную информацию о том, как вы это делаете? Кроме того, вы хотите, чтобы пользователи видели экран согласия OAuth или нет? Если вы не хотите взаимодействия с пользователем, я бы посоветовал использовать для этого учетную запись службы с правами на весь домен . Не могли бы вы прояснить это немного подробнее?

3. Хорошо, Ямвлих, я хотел бы получить больше информации, если вы соблаговолите ее предоставить. Допустим, вы включили API Gmail для своего проекта (что мне пришлось сделать, чтобы разрешить регистрацию в Google). Как бы вы отправили электронное письмо с сервера от определенного пользователя?

4. Просто следуйте руководству в документации, о которой я упоминал. Точный код будет зависеть от используемого вами языка (выдающая себя учетная запись должна быть указана в определенном параметре). И после того, как вы выдадите себя, вы вызовете » отправить » так же, как обычно. Если вы спросите что-то более конкретное, я буду рад ответить.

5. Спасибо за комментарии. Как можно предложить пользователям самим выполнить OAuth? У меня есть микросервис, который используется для отправки электронных писем. Это вообще возможно?