Google api 如何将服务帐户密钥凭据的客户端电子邮件更改为我自己的电子邮件?

Google api 如何将服务帐户密钥凭据的客户端电子邮件更改为我自己的电子邮件?,google-api,google-oauth,google-analytics-api,service-accounts,Google Api,Google Oauth,Google Analytics Api,Service Accounts,我有2个应用程序,旧的应用程序使用Oauth2访问Google Analytics API。所有当前用户都已授予从我的域访问电子邮件的权限 第二个应用程序将凭据与服务帐户身份验证一起使用。 问题是服务帐户密钥的电子邮件使用的是不同的域: “客户电子邮件”:“xxx”-service@xxx.iam.gserviceaccount.com“ 我需要它来使用我的旧电子邮件从我的域已经有权限从客户端 我已经下载了服务帐户密钥的json文件。Oauth2和服务帐户之间存在差异 让我们从使用Oauth2的

我有2个应用程序,旧的应用程序使用Oauth2访问Google Analytics API。所有当前用户都已授予从我的域访问电子邮件的权限

第二个应用程序将凭据与服务帐户身份验证一起使用。 问题是服务帐户密钥的电子邮件使用的是不同的域:

“客户电子邮件”:“xxx”-service@xxx.iam.gserviceaccount.com“

我需要它来使用我的旧电子邮件从我的域已经有权限从客户端


我已经下载了服务帐户密钥的json文件。

Oauth2和服务帐户之间存在差异

让我们从使用Oauth2的旧应用程序开始。当用户开始使用应用程序时,会显示身份验证表单,要求他们授予application X对其数据的访问权限。假设他们接受它,应用程序X现在可以读取那里的数据。应用程序X获得了一个刷新令牌,可用于以后访问数据

在后台,应用程序X的开发者在Google开发者控制台上注册了他们的应用程序,并获得了客户端id和客户端密码。当用户对应用程序进行身份验证时,将使用客户端id和客户端机密创建刷新令牌。您不能从另一个应用程序获取不同的客户端id和客户端机密,并将其与刷新令牌一起使用,因为它们是不可互换的

服务帐户的不同之处在于它们是预授权的。如果您使用您拥有的服务帐户电子邮件地址,并将其作为用户添加到Google analytics网站管理部分。服务帐户将有权像任何其他用户一样读取信息

澄清/答复

  • 您不能选择由谷歌生成的服务帐户电子邮件地址
  • 您不能使用服务帐户访问通过Oauth2授予应用程序的数据。它们不能互换
  • 如果您可以使用Oauth2访问用户数据,则应该使用刷新令牌访问他们的数据,而不需要服务帐户