首页 > 解决方案 > 使用 API 访问 Google Analytics(分析)用户数据时验证凭据无效

问题描述

我正在尝试使用 python 3.7 访问用户在谷歌分析中的活动...我已经完成了获取访问令牌并使用此处的代码的过程

https://developers.google.com/analytics/devguides/reporting/core/v4/user-reporting

如果我只是下载聚合数据,则凭据有效,但是当我使用这种方法时,我收到一条 401 消息,上面写着

"message": "请求具有无效的身份验证凭据。需要 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据。"status": "UNAUTHENTICATED"

如果我去 OAuth 2.0 Playground,访问令牌可以正常工作。有什么想法我在这里想念的吗?谢谢。

url = 'https://analyticsreporting.googleapis.com/v4/userActivity:search'

payload = {
    "viewId": "xxx",
    "user": {
       "type": "CLIENT_ID",
       "userId": "xxx"
      },
"dateRange": {
    "startDate": "2019-06-13",
    "endDate": "2019-10-05",
   }
  }

hed = {
   'Authorization': 'Bearer ' + access_token,
   'Content-type': 'application/json'
 }

  r = requests.post(url, data=payload, headers=hed)

标签: google-apigoogle-oauth

解决方案


您可以使用 Google 服务帐户获取令牌以向 Google Analytics API 发送请求。Google Service Account 实际上是 RFC7523 的实现。

首先,您需要创建一个 Google Service Account,然后您可以使用Authlib AssertionSession直接访问 Google Analytics API。

按照本指南在 Python 中访问 Google Analytics API


推荐阅读