使用Python自动生成报告,我需要什么样的凭证

时间:2016-08-17 08:25:36

标签: google-analytics-api

我有一个Google Analytics帐户,我希望自动生成一些自定义报告,但是我在理解需要哪种凭据方面遇到了一些问题。我见过的大多数教程都说我需要使用OAuth客户端ID,但谷歌开发者控制台网站说我需要一个Servide帐户密钥。

两者有什么区别?使用其他Google Analytics帐户我尝试设置OAuth连接,但它确实有效,但我现在不确定应该使用哪种密钥。

我想要做的是将Python脚本设置为在某些时候运行,然后获取我想要查询的数据。该数据与登录Google Analytics用户界面时的数据相同,因此任何用户都无需同意授予我访问任何个人数据的权限,也无需使用同意表单。

有人可以解释两个凭证之间的差异以及用于我的项目的正确选择吗?

1 个答案:

答案 0 :(得分:3)

服务帐户和OAuth2都用于访问私人用户数据。私人数据是只有登录才能访问的数据。我在Google+上的帖子是公开的,任何人都可以看到它们。我的Google Analytics中的信息由我私有,只有我能看到它以及我授予访问权限的那些信息。

在运行时授予Oauth2访问权限。第一次运行应用程序时,将询问用户您的应用程序是否可以访问其数据。如果用户接受并授予您的应用程序访问权限,您将获得刷新令牌。然后,该刷新令牌可用于获取用于访问私有用户数据的访问令牌。访问令牌只有大约一个小时。小时结束后,您可以使用刷新令牌再次访问。这就是为什么我说在运行时授予访问权限。您只需要让用户访问一次即可获得刷新令牌。

另一方面,服务帐户已经过预先验证。服务帐户就像虚拟用户,他们有自己的谷歌驱动器帐户和谷歌日历帐户。因为如果这样可以像使用任何其他用户一样使用它们来发送数据。您可以获取服务帐户电子邮件地址,并将其作为用户添加到Google帐户的管理部分,在ACCOUNT级别,它必须是ACCOUNT级别。然后,使用代码中的服务帐户,您将能够访问该Google Analytics帐户的数据,而无需首次向用户请求身份验证。

开发人员最常使用服务帐户授予其他人访问开发人员拥有的数据的权限。另一方面,Oauth2将用于访问开发人员无法访问的客户的数据。

从技术上讲,只要您存储刷新令牌,您就可以将它们用于您的项目,您可以在技术上将Oauth2用于您的项目。但是我不建议刷新令牌在某些情况下会过期,我不会进入。

我建议您使用服务帐户,因为您只需要设置一次就可以更轻松地进行管理。

我关于这个主题的教程:

  1. Google Developer console service account
  2. Google Developer Console Oauth2 credentials