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

Oauth 2.0 如何使用Gmail REST API发送电子邮件,oauth-2.0,google-api,google-oauth,gmail-api,Oauth 2.0,Google Api,Google Oauth,Gmail Api,我需要通过简单的REST呼叫从我的服务器发送电子邮件,从我的后端服务器电子邮件地址发送到系统中注册的电子邮件地址 但是有一个问题,请容忍我 问题是,到目前为止,我看到的很多文档似乎都假设我想访问客户的gmail数据,而我没有,我只使用客户的地址作为目的地 我看到的很多例子都涉及到一个可视化promt来授权访问api 但是为什么呢 他们假设我将从一个移动设备上进行APICALL,代表客户,这需要一个视觉提示来获得同意。但这些都不适用于我的用例 问题是,永远只有一个发送者,“我”(公司为后端服务器指

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

但是有一个问题,请容忍我

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

我看到的很多例子都涉及到一个可视化promt来授权访问api

但是为什么呢

他们假设我将从一个移动设备上进行APICALL,代表客户,这需要一个视觉提示来获得同意。但这些都不适用于我的用例

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

我应该能够在google控制台上创建一个秘密的api_密钥,并将其发送到我的请求头中(就像奇怪的FIREBASE那样),或者使用该密钥生成一个令牌,然后将其发送到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...
}
POSThttps://gmail.googleapis.com/upload/gmail/v1/users/{userId}/messages/send
授权:密钥=
{
消息内容。。。
}
google上的api引用说,我需要使用OAuth凭据创建授权,然后我应该使用该凭据创建一个作为身份插入的短期令牌

"Authorization: Bearer <TOKEN>"
“授权:持票人”
在我的下一场比赛中,直到比赛结束。但是

在控制台中,创建一个新的OAuth2.0客户端ID时说我需要创建一个应用程序。但我已经有了一个proyect和一个api_密钥(拥有gmailapi的权限)。上面说应用程序必须被发送以供审查!。发生什么事了

所以

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

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

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


谢谢。

承载令牌是一种OAuth2访问令牌,您在授权应用程序访问您的Gmail帐户后获得。它是为第三方授权而设计的(就像你的用户允许你的应用程序访问他们的Gmail),这就是为什么当你访问自己的帐户时它看起来很复杂的原因


查看此信息

承载令牌是一种OAuth2访问令牌,您在授权应用程序访问您的Gmail帐户后获得该令牌。它是为第三方授权而设计的(就像你的用户允许你的应用程序访问他们的Gmail),这就是为什么当你访问自己的帐户时它看起来很复杂的原因


检查一下

发现我试图使用错误的工具解决问题。 在寻找替代方案后,我发现了MailGun和SendGrid。 我试过SendGrid,它很合身。我喜欢

我使用Gmail+PHPMailer解决这个问题,并认为新的api是为了取代它,但事实并非如此

亚历克赛在他的回答中指出了预期用途。实际上,我可能最终会将新的Gmail api集成到我的客户移动设备上,使其更符合其预期用途

这都是我的误解


谢谢您的时间。

原来我试图用错误的工具解决这个问题。 在寻找替代方案后,我发现了MailGun和SendGrid。 我试过SendGrid,它很合身。我喜欢

我使用Gmail+PHPMailer解决这个问题,并认为新的api是为了取代它,但事实并非如此

亚历克赛在他的回答中指出了预期用途。实际上,我可能最终会将新的Gmail api集成到我的客户移动设备上,使其更符合其预期用途

这都是我的误解


感谢您抽出时间。

由于都是服务器端,您在后端使用的是哪种编程语言?由于都是服务器端,您在后端使用的是哪种编程语言?SparkPost对我们来说非常有效。看看他们,SparkPost对我们来说很有效。也来看看