使用Python 2.7.x连接到Google Analytics时出现403错误

dav*_*xie 6 python google-analytics python-2.7 google-api-python-client

我尝试使用Python客户端(google-api-python-client)从Google Analytics API获取数据.这是我使用的代码:

from apiclient import discovery
from oauth2client.client import SignedJwtAssertionCredentials
from httplib2 import Http

with open("ManagementGate-622edd43c0dd.p12") as f:
    private_key = f.read()

credentials = SignedJwtAssertionCredentials(
    'XXXXXXXX@developer.gserviceaccount.com',
    private_key,
    'https://www.googleapis.com/auth/analytics.readonly')

http_auth = credentials.authorize(Http())

service = discovery.build('analytics', 'v3', http=http_auth)

result = service.data().ga().get(
      ids='ga:79873569',
      start_date='7daysAgo',
      end_date='today',
      metrics='ga:visits,ga:sessions,ga:pageviews').execute()
Run Code Online (Sandbox Code Playgroud)

我在凭据页面上创建了一个服务帐户.但是,我收到如下错误:

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/analytics/v3/data/ga?metrics=ga%3Avisits%2Cga%3Asessions%2Cga%3Apageviews&alt=json&end-date=today&ids=ga%3A79873569&start-date=7daysAgo returned "User does not have any Google Analytics account.">
Run Code Online (Sandbox Code Playgroud)

我所遵循的说明来自:https://developers.google.com/accounts/docs/OAuth2ServiceAccount 还有什么我需要做的吗?为什么我会收到此错误?我已在API页面上启用了Analytics API.

DaI*_*mTo 9

您正尝试使用服务帐户访问Google AnalyticsAPI.默认情况下,服务帐户无权访问任何Google Analytics帐户.

您需要做的是从Google Developer控制台获取服务帐户电子邮件地址.转到Google Analytics网站的"管理"部分.在ACCOUNT级别授予此服务帐户访问权限,您必须为要访问的Google Analytics帐户的ACCOUNT级别.

它不能在Web属性或视图级别工作,它必须是帐户级别.