【问题标题】:Google OAuth scope for sending mail用于发送邮件的 Google OAuth 范围
【发布时间】:2013-09-30 19:49:37
【问题描述】:

使用 Google Oauth2,以下范围用于获取对用户电子邮件的 API 访问权限: https://mail.google.com/

通过OAuth 2.0 Playground 测试范围确认应用想要“查看和管理您的电子邮件”:

有没有办法只请求访问权限以代表用户发送电子邮件?也许更具体的范围?

【问题讨论】:

    标签: gmail oauth-2.0 google-apps google-oauth


    【解决方案1】:

    如果您通过 SMTP 或 IMAP 使用 OAuth,则范围相同。但是 Google 发布了一组新的范围 (https://developers.google.com/gmail/api/auth/scopes) 用于 Gmail API 访问。他们在这里:

    1. https://mail.google.com/ 对帐户的完全访问权限,包括永久删除线程和消息。仅当您的应用程序需要立即永久删除线程和消息时,才应请求此范围。所有其他操作都可以在许可范围较小的情况下执行。
    2. https://www.googleapis.com/auth/gmail.modify 除了立即永久删除线程和消息之外的所有读/写操作。
    3. https://www.googleapis.com/auth/gmail.readonly 读取所有资源及其元数据。没有写操作。
    4. https://www.googleapis.com/auth/gmail.compose 创建、阅读、更新和删除草稿。发送消息和草稿。
    5. https://www.googleapis.com/auth/gmail.send 仅发送消息。邮箱没有读取或修改权限。
    6. https://www.googleapis.com/auth/gmail.insert 仅插入和导入消息。
    7. https://www.googleapis.com/auth/gmail.labels 仅创建、读取、更新和删除标签。
    8. https://www.googleapis.com/auth/gmail.metadata 读取资源元数据,包括标签、历史记录和电子邮件标题,但不读取邮件正文或附件。
    9. https://www.googleapis.com/auth/gmail.settings.basic 管理基本邮件设置。
    10. https://www.googleapis.com/auth/gmail.settings.sharing 管理敏感邮件设置,包括转发规则和别名。 (仅限 G Suite)

    您可以尝试使用第 5 个,看看它是否适合您。

    【讨论】:

    • 现在 Google 也限制了几乎所有 gmail 范围的使用,并迫使应用程序开发人员“证明”您需要这些范围。我和他们一起经历了 3 个月的时间,他们的“机器人”要求提供视频、确认您是否遵循指南等。最后他们撤销了对我的应用程序的访问权限。我确实发布了一个关于此的问题,但还没有回复。我不敢相信没有更多的开发人员正在经历这个。
    • @Kumar - 现在这完全有道理。我不知道会发生这种情况。好吧,我想我需要为我的产品收取更多费用,并让公司在他们的 G Suite 中设置自己的私人 gmail 客户端 ID。我想更多的时间,更多的支持,更多的钱。在我的情况下,为了记录,我无法阅读客户的电子邮件,除非他们给我他们的测试凭据。
    • 仍在与他们抗争,这次主要针对 SMTP 服务器和需要 mail.google.com 范围的 OAuth 2.0。他们告诉我改用 API 并改用 .send 范围。当然,将我所有的客户从 SMTP 服务器更改为 API……听起来很有成效。为什么他们不只是将 SMTP 服务器上的范围更改为 .send 我不知道。无论如何,我正在放弃尝试与谷歌推理。我将强制我的客户在他们自己的 Google Apps 中设置他们自己的应用程序,并且不允许仅将其用于 gmail.com 地址。可笑。
    • 我们遇到了同样的问题:Google 要求放弃https://mail.google.com/ 范围并使用我们愿意这样做的https://www.googleapis.com/auth/gmail.send 范围......但他们的系统无法应对这种变化,即使我们在应用程序和他们的管理控制台中进行了更改,他们的 SMTP 服务器仍然坚持完全访问范围。来来回回几个月,他们几周都没有回复,现在 Gmail 给我们的客户发邮件说我们的应用程序将停止使用他们的 Gmail 帐户。 Gmail 团队是我接触过的最无能和最不透明的实体。
    • 已经 2 年了,https://www.googleapis.com/auth/gmail.send 仍然不允许您发送电子邮件。 Gmail 团队就是个笑话。
    【解决方案2】:

    恐怕答案是否定的。 GMail API documentation 指定一个范围 (https://mail.google.com) 提供读取和写入访问。不理想的 IMO,最好有独立的读/写电子邮件访问范围。

    仅供参考,SO 中的similar question 对只读电子邮件访问得出相同的结论。

    【讨论】:

      猜你喜欢
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 2019-07-07
      • 2021-11-30
      • 1970-01-01
      • 2018-01-11
      相关资源
      最近更新 更多