GMail REST API:使用没有模拟的 Google 凭据
Posted
技术标签:
【中文标题】GMail REST API:使用没有模拟的 Google 凭据【英文标题】:GMail REST API: Using Google Credentials Without Impersonate 【发布时间】:2015-06-03 03:59:57 【问题描述】:是否可以在不使用模拟的情况下将 Google 凭据用于 GMAIL REST API??
在我看到的许多 GMAIL REST API 示例中,必须使用与域和 Google APPS 关联的模拟帐户。我只想使用 GMAIL REST API api server-to-server :
f.e:
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();
问题是我没有任何域,我只使用一个 GMAIL 帐户......但我没有任何授权方式,例如:MyMainGmailAcccoun@gmail.com
服务帐户 id 4xxxxxxxxxxxxxq@developer.gserviceaccount.com"; 是使用 MyMainGmailAcccoun@gmail.com 创建的“客户帐户”
这毫无意义,我不想冒充另一个域的其他帐户,而且我没有任何方法来授权 MyMainGmailAcccoun@gmail.com。
只有在您有一个帐户来模拟与 Google Apps 关联的其他域并获取 Google Apps 时才有效……您需要一个域。
有什么建议吗?
【问题讨论】:
【参考方案1】:您可能只想简单地使用OAuth 2.0 for Web Server Applications。假设你想要授权超过一个小时,你可以使用refresh tokens。
【讨论】:
不,我只想使用 Google Mail Service,服务器到服务器。只需从 java 独立应用程序 [服务器端] 调用 GMAIL REST 服务。当我调用该服务时,我使用仅为该服务创建的 p12 文件创建 Google 凭据。 您不能将服务帐户与消费者(非 Google Apps)帐户一起使用。您必须使用 Web 服务器流程或已安装的应用程序流程:developers.google.com/accounts/docs/OAuth2InstalledApp 我也不清楚为什么您对使用服务帐户如此强烈。您不能使用 Web 服务器流做什么? 服务帐户无法做到这一点。您实际上是在说,我如何用锤子将螺丝钉在板上?使用螺丝刀... 方位角,杰是对的。此处的“服务帐户”表示您以不是真实(人类)Google 帐户的帐户登录。此类帐户不能使用 Gmail,它们仅用于与特定人员无关的服务(例如地图和搜索 API,而不是驱动器、日历、gmail 等)。可以使用具有域范围委派的服务帐户来访问域中的任何人(假设域管理员将此类访问列入白名单),但这可能不是您想要的(永远不适用于@gmail.com 帐户)。跨度>以上是关于GMail REST API:使用没有模拟的 Google 凭据的主要内容,如果未能解决你的问题,请参考以下文章
使用相同控制台应用程序的 Gmail REST API 和 Gmail IMAP 的 API 配额
使用 Python 进行 base64 解码,并使用基于 REST 的 Gmail API 下载附件