投放401s的Google Analytics报告API

时间:2016-06-23 20:26:07

标签: .net google-analytics google-analytics-api google-analytics-sdk

我正在尝试从Google Analytics分析报告中获取一个非常简单的数据集,但尚未对其进行身份验证。我真的迷路了。我一直在使用API​​资源管理器测试我正在尝试做什么,似乎无法做一个简单的批处理。我已经消除了关键字段(obv)

这基本上就是我要发回的内容:服务> Google Analytics Reporting API v4> analyticsreporting.reports.batchGet

注意:我不是要尝试使用OAuth2,而只是使用服务器API密钥来解决这个问题。

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet?fields=reports&key=XXX
{
 "reportRequests": [
  {
   "dateRanges": [
{
 "startDate": "2014-06-23",
 "endDate": "2016-06-23"
}
],
"orderBys": [
{
 "fieldName": "ga:pageviews",
 "sortOrder": "DESCENDING"
}
],
"dimensions": [
 {
 "name": "ua:page"
 }
]
},
{
  "viewId": "7070072"
}
]
}

这是回来的:

{
  "error": {
  "code": 401,
  "message": "The request does not have valid authentication credentials.",
  "status": "UNAUTHENTICATED"
 }
}

1 个答案:

答案 0 :(得分:1)

API密钥适用于未经身份验证的API,例如Google Analytics Metadata APIAnalytics Reporting API V4需要有效的OAuth token。想一想,您是否希望只有拥有API密钥的人才能访问您的GA数据? API需要验证用户是否有权访问数据。请仔细阅读各种OAuth Scenarios并找到与您的用例匹配的内容。

所以听起来你想用service account进行身份验证。问题不在于您的分析代码,而在于您的身份验证方式。要发出请求,您需要拥有有效的OAuth令牌。由于您明确列出了您对 .NET 感兴趣,因此您应该查看Google APIs .NET client library documentation。请注意,您需要将服务帐户电子邮件添加到您希望访问的Google Analytics(分析)视图中。