GMail REST API:使用没有模拟的Google凭据

Azi*_*uts 5 java email rest google-apps gmail-api

是否可以在不使用模拟的情况下使用Google Credentials for GMAIL REST API?

在GMAIL REST API的许多示例中,我看到必须使用与域和Google APPS关联的模拟帐户.我只想使用GMAIL REST API api服务器到服务器:

FE:

GoogleCredential  credential = new GoogleCredential.Builder().setTransport(httpTransport)
            .setJsonFactory(jsonFactory)
                         .setServiceAccountId(serviceAccountUserEmail)
                         **.setServiceAccountUser("myuser@mydomain.com)**
                         .setServiceAccountScopes(SCOPES)
                         .setServiceAccountPrivateKeyFromP12File(
                         new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH))                                
                        .build();
Run Code Online (Sandbox Code Playgroud)

问题是,我没有任何域名,我只使用GMAIL帐户...但我没有任何方式授权,例如:MyMainGmailAcccoun@gmail.com

servive acccount id 4xxxxxxxxxxxxxq@developer.gserviceaccount.com";是使用MyMainGmailAcccoun@gmail.com创建的" 客户帐户"

这没有任何意义,我不想冒充其他域名的其他帐户,我也没有任何办法来authozize MyMainGmailAcccoun@gmail.com.

只是有效,如果您有一个帐户来冒充与Google Apps相关的其他域名,并获得Google Apps ...您需要一个域名.

任何建议?

Jay*_*Lee 4

您可能只想简单地将OAuth 2.0 用于 Web 服务器应用程序。假设您想要授权超过一个小时,您可以使用刷新令牌

  • 阿兹慕,杰伊是对的。这里的“服务帐户”意味着您登录的帐户不是真实的(人类)Google 帐户。此类帐户无法使用 Gmail,它们仅用于与特定人员无关的服务(例如地图和搜索 API,而不是驱动器、日历、gmail 等)。人们可以使用具有域范围委派的服务帐户来访问域中的任何人(假设域管理员将此类访问列入白名单),但这可能不是您想要的(永远不适用于 @gmail.com 帐户)。 (3认同)
  • 不,我只想使用服务器到服务器的 Google 邮件服务。只需从 java 独立应用程序 [服务器端] 调用 GMAIL REST 服务。当我调用该服务时,我使用专门为此服务创建的 p12 文件创建 Google 凭据。 (2认同)