oauth-2.0 - 如何使用 Gmail REST API 发送电子邮件

标签 oauth-2.0 google-api google-oauth gmail-api

我需要通过简单的 REST 调用从我的服务器发送电子邮件,从我的后端服务器电子邮件地址发送到系统中注册的电子邮件地址。

但是有一个问题,请耐心等待。

问题是,到目前为止我看到的很多文档似乎都假设我想要访问客户的 gmail 数据,但我不想,我只使用客户的地址作为目的地。

我见过的很多示例都涉及视觉提示来授权对 API 的访问。

但是为什么呢?

他们假设我将代表客户从移动设备进行 API 调用,这需要视觉提示以表示同意。但这些都不适用于我的用例。

问题是,永远只有一个发件人,“ME”(为后端服务器指定的公司电子邮件)。

我应该能够在 google 控制台上创建一个 secret api_key,并将其发送到我的请求 header 中(就像该死的 FIREBASE 所做的那样),或者使用该 key 生成一个 token ,然后将其发送到 api 端点(例如 Paypal确实)。

我希望能够做这样的事情:

POST https://gmail.googleapis.com/upload/gmail/v1/users/{userId}/messages/send

Authorization: key=<key_created_on_google_console_or_token_obtained_using_said_key>

{
  message stuff...
}

Google 上的 api 引用说我需要使用 OAuth 凭据创建授权,然后我应该使用它来创建一个插入为的短期 token

"Authorization: Bearer <TOKEN>"

在我的下一个 API 调用中,直到它过期。但是...

在控制台中,创建一个新的 OAuth2.0 客户端 ID,表示我需要创建一个应用程序。但我已经有一个项目和一个 api_key (具有 gmail api 的权限)。也就是说,应用程序必须发送以供审核!这是怎么回事?

所以..

如何使用 REST 调用从我自己控制的电子邮件地址发送电子邮件。

这都是服务器端,不需要访问任何用户数据(甚至不需要我自己的数据),我已经控制了发件人地址,我已经在谷歌控制台上创建了一个项目,我已经创建了一个 api_key。

OAuth 似乎认为我在做一些我没有做的事情,那么我错过了什么?

谢谢。

最佳答案

承载 token 是您在授权应用程序访问 Gmail 帐户后获得的 OAuth2 访问 token 。它实际上是为第三方授权而设计的(例如您的用户允许您的应用访问他们的 Gmail),这就是为什么当您访问自己的帐户时它看起来很复杂。

看看这个 https://developers.google.com/identity/protocols/oauth2

关于oauth-2.0 - 如何使用 Gmail REST API 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64273126/

相关文章:

authentication - 我应该如何为 Electron 桌面应用程序实现用户身份验证/角色?

azure - 如何在 JMeter 中进行 OAuth 2.0 身份验证?

javascript - 使用 Angular 在页面加载时访问 Google Maps API

google-oauth - Firebase Google OAuth 重定向错误

node.js - Strategy.OAuth2Strategy.parseErrorResponse 错误 - NodeJS passport google oauth2.0

google-chrome - 无法让 Chrome 版本 42 接受本地主机证书

oauth-2.0 - spring-social-vkontakte 授权代码问题

javascript - 获取 Google 域中的所有用户。 Google Admin SDK - 用户列表

php - 未在 php 中使用 google+ api 注销

google-play - 已发布游戏上的 "The Application is incorrectly configured"