我有2个应用程序,旧应用程序使用Oauth2访问Google AnalyticsAPI。所有当前用户都已授予访问我的域中的电子邮件的权限。
第二个应用程序使用凭据和服务帐户身份验证。 问题是服务帐户密钥的电子邮件使用的是其他域:
“client_email”:“xxx-service@xxx.iam.gserviceaccount.com”,
我需要它来使用我的域中已经拥有客户权限的旧电子邮件。
我该怎么做,我已经下载了服务帐户密钥的json文件。
答案 0 :(得分:1)
Oauth2和服务帐户之间存在差异。
让我们从使用Oauth2的旧应用开始。当用户开始使用应用程序时,他们会显示身份验证表单,要求他们授予应用程序X访问其数据的权限。假设他们接受它,应用程序X现在可以读取数据。应用程序X被赋予刷新令牌,该令牌可用于在以后访问数据。
在后台,Application X的开发人员在Google Developer Console上注册了他们的应用程序,并获得了客户端ID和客户端密钥。当用户对应用程序进行身份验证时,将使用客户端ID和客户端密钥创建刷新令牌。您不能使用不同的客户端ID和客户端密钥,并将其与来自另一个不可互换的应用程序的刷新令牌一起使用。
服务帐户的不同之处在于它们是预先授权的。如果您使用该服务帐户的电子邮件地址,并将其作为用户添加到Google Analytics网站管理部分。服务帐户将有权像其他任何用户一样阅读信息。
澄清/回答。