0

Я не могу найти решение для авторизации аутентификации между серверами с помощью API Google SDK + Python + MAC OSx + GMAIL.Сервер приложений Google для сервера OAuth Python

Я хотел бы проверить интеграцию API GMail в своей локальной среде, прежде чем публиковать свое приложение в GAE, но до сих пор у меня нет результатов, используя образцы, которые я нашел в документации API GMail или OAuth. Во время всех тестов я получил ту же ошибку «403-Недостаточное разрешение», когда мое приложение использовало учетную запись службы GCP, но если я конвертирую приложение для использования учетной записи пользователя, все будет в порядке.

+0

Что вы подразумеваете под этим «когда моя заявка использовала учетную запись службы GCP, но если я конвертирую приложение для использования учетной записи пользователя, все будет в порядке». – Jordon

ответ

0

Учетная запись службы вы не являетесь ее собственным пользователем. Даже если вы можете получить доступ к Gmail с учетной записью службы, в которой я сомневаюсь, что вы будете получать доступ к учетным записям службы GMail (что, как я думаю, не имеет), а не вашим собственным.

Насколько я знаю, единственным способом доступа к API Gmail является Oauth2.

Учетные записи службы могут использоваться для доступа к некоторым API Google, например к Google Диску. В учетной записи службы его собственные файлы учетной записи Google будут загружены на учетную запись своего накопителя. Я могу дать ему разрешение на загрузку в мою учетную запись Google, добавив ее как пользователя в папку на диске Google.

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

+0

Извините, что я забыл эту важную информацию, но приложение использует OAuth 2.0 –

0

Я предлагаю вам пойти на трёхногий OAUTH 2.0. Для получения дополнительной информации по этому вопросу, пожалуйста, посетите мой ответ here

Родственный термин «три ноги OAuth» относится к ситуации, в которых приложение вызывает API Google, от имени конечных пользователей, а также в которых согласие пользователя иногда требуется.

Я думаю, вы должны использовать три протокола OAuth 2.0, две ноги OAuth 2.0 не будет работать в вашем случае

Пожалуйста, прочитайте это из developers.google.com

Рекомендации: Ваше приложение может завершить эти задачи либо на с использованием клиентской библиотеки Google API для вашего языка, либо напрямую , взаимодействующего с системой OAuth 2.0 с использованием HTTP. Однако для механики взаимодействия аутентификации между сервером требуется приложений для создания и криптографического подписи JSON Web Tokens (JWT), и очень легко сделать серьезные ошибки, которые могут оказать серьезное влияние на безопасность вашего приложения на .

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

+0

Извините, что я забыл эту важную информацию, но приложение использует OAuth 2.0. –

+0

Используете ли вы двухъядерный OAUTH 2.0 или трехногий OAUTH 2.0? – Jordon

+0

я попробовал эти два метода: "из oauth2client.appengine импортного AppAssertionCredentials учетных данных = AppAssertionCredentials ('') https://mail.google.com/ " и этой другой: " от импорта oauth2client.client SignedJwtAssertionCredentials client_email = '[email protected]' с открытым ("MyProject.pem") как F: private_key = f.read() учетные данные = SignedJwtAssertionCredentials (client_email, private_key, 'https://mail.google.com/') " –

Смежные вопросы