Google api 谷歌Gmail API-普通或服务帐户

Google api 谷歌Gmail API-普通或服务帐户,google-api,gmail-api,google-workspace,service-accounts,Google Api,Gmail Api,Google Workspace,Service Accounts,我们正在.NET Core 3.1中开发一个内部应用程序。其中一项要求是,应用程序的所有用户都必须能够在预定义的Gmail帐户中看到消息的数量(例如test@company.com),它是GSuite的一部分。这意味着每个登录到应用程序的用户都可以看到这些信息,而无需任何额外的谷歌登录或任何类似操作。应用程序应该能够访问电子邮件,而无需用户交互,只需使用代码 在阅读文档时,我注意到有两种类型的账户——普通账户和服务账户。我有以下问题: 哪种帐户类型适合我们的场景?我倾向于服务帐户 我需要做什么才

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

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

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

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

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

    应该是管理员(
    admin@company.com
    )创建一个服务帐户,或者从
    test@company.com
    帐户?我是否可以将服务帐户限制为只能访问
    test@company.com
    ?您可以创建服务帐户。管理员将需要为您提供域范围的授权。您将有权访问域中的所有电子邮件。他们无法限制。管理员是否至少可以限制服务帐户可以执行的操作?例如,他/她可以禁用删除电子邮件吗?没有任何服务帐户可以完全访问域上的电子邮件,所有用户都可以。前提是我们希望在
    test@company.com
    inbox向我们应用程序的所有用户发送电子邮件,而不必使用谷歌登录,服务帐户是唯一的选择吗?