Google Gmail API-普通帐户或服务帐户

问题描述

我们正在.NET Core 3.1中开发一个内部应用程序。要求之一是,应用程序的所有用户必须能够查看GSuite一部分的预定义Gmail帐户(例如test@company.com)中的邮件数量。这意味着每个登录该应用程序的用户都可以查看此信息,而无需任何其他Google登录或类似操作。应用程序应该能够仅使用代码访问电子邮件,而无需用户交互。

在阅读文档时,我注意到有两种类型的帐户-普通帐户和服务帐户。我有以下问题:

  1. 哪种帐户类型适合我们的情况?我倾向于服务帐户。
  2. 要从test@company.com访问电子邮件,我需要做什么?我需要登录此帐户,启用Gmail API,创建服务帐户,下载凭据并在我们的应用程序中使用它们吗? Gsuite管理员是否需要做其他事情?
  3. 服务帐户是否适用于非GSuite电子邮件?我想在我创建的随机帐户(例如abc123@gmail.com)上测试代码吗?

解决方法

您将需要gsuite管理员为您的服务帐户设置域范围内的委派,以便能够访问域中用户的电子邮件帐户。服务帐户不适用于非gsuite域电子邮件。

GoogleCredential credential;
using (var stream = new FileStream(serviceAccountCredentialFilePath,FileMode.Open,FileAccess.Read))
      {
      credential = GoogleCredential.FromStream(stream).CreateScoped(scopes);
      }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...