我可以使用 Gmail API 访问同一域中其他用户的邮件列表和设置吗?

Posted

技术标签:

【中文标题】我可以使用 Gmail API 访问同一域中其他用户的邮件列表和设置吗?【英文标题】:Can I access mail list and settings of other user in same domain using Gmail API? 【发布时间】:2020-02-13 20:07:47 【问题描述】:

我正在编写一个自动化 CLI 脚本代码,用于读取 G Suite 用户别名及其 Gmail 发送方式设置。此脚本不能进行用户交互。

我使用超级管理员用户帐户设置所有内容。使用超级管理员用户设置服务帐户并设置域范围的委派。我可以使用 Admin SDK API 列出域中的用户,并且可以获取超级管理员用户的 Gmail 设置。但是,如果我尝试读取域中其他普通用户的 Gmail 设置,则会失败并出现此错误。


 "error": 
  "errors": [
   
    "domain": "global",
    "reason": "forbidden",
    "message": "Delegation denied for user@email.com"
   
  ],
  "code": 403,
  "message": "Delegation denied for user@email.com"
 

它允许使用 Gmail API 读取同一 G Suite 域电子邮件设置中的其他用户吗?还是总是被禁止?我应该怎么做才能阅读他们的电子邮件设置?

【问题讨论】:

【参考方案1】:

您正尝试使用您的超级管理员委派凭据访问其他用户的设置,而该凭据没有这种访问权限。您无法使用您的超级管理员凭据检索其他用户设置。

您需要为每个用户生成委托凭据,并使用这些凭据来检索每个用户的设置信息。

【讨论】:

以上是关于我可以使用 Gmail API 访问同一域中其他用户的邮件列表和设置吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以使用服务帐户访问 GMAIL API 吗?

使用 IMAP(javamail API)从 gmail 访问电子邮件

如何在同一个域中托管我的 API 和 Web 应用程序?

如何在 Nodejs 中使用 gmail api 在同一对话中回复电子邮件

如何使用 gmail api 获取访问令牌

访问未授予或过期 GMAIL API 和 Oauth2 / 如何使用 GMAIL API 和 GSuite 域设置电子邮件签名