尝试使用帐户服务从 Gmail 帐户读取 Gsuite 中的公司电子邮件时出现 401 未经授权的错误
Posted
技术标签:
【中文标题】尝试使用帐户服务从 Gmail 帐户读取 Gsuite 中的公司电子邮件时出现 401 未经授权的错误【英文标题】:401 Unauthorized Error when trying to read corporative emails in Gsuite from a Gmail account using Account Service 【发布时间】:2018-05-26 12:54:31 【问题描述】:我在公司 Gmail 帐户(尤其是 Gsuite Gmail 帐户)中阅读电子邮件时遇到问题。
我已经按照以下步骤操作了:
转到 Google API 控制台。 创建一个新项目。 创建一个新的服务帐户 获取p12格式的私钥 允许将 G Suite 域范围的权限委派给服务帐号。 转到 Gsuite 管理面板。 转到安全部分 允许电子邮件范围(读/写/发送)https://mail.google.com/ 到服务帐户。 我使用 p12 私钥编写了以下代码:(https://developers.google.com/admin-sdk/reports/v1/guides/delegation)。 这是代码:https://gist.github.com/sebastianmorenoe/40c16c1bb3420b27917d2dc58eb385f0很遗憾,我收到此错误:com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized
非常感谢您提供的任何帮助。
问候
【问题讨论】:
如果您将服务帐户的电子邮件用于变量 ACCOUNT_EMAIL 而不是您自己的电子邮件,会发生什么情况? @noogui maven 依赖项的版本有问题。我发布了具有正确依赖关系的答案。 【参考方案1】:maven 依赖有问题。
使用这些依赖关系解决了这个问题。
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-gmail</artifactId>
<version>v1-rev73-1.23.0</version>
</dependency>
【讨论】:
以上是关于尝试使用帐户服务从 Gmail 帐户读取 Gsuite 中的公司电子邮件时出现 401 未经授权的错误的主要内容,如果未能解决你的问题,请参考以下文章