我正在尝试从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"
}
}
答案 0 :(得分:1)
API密钥适用于未经身份验证的API,例如Google Analytics Metadata API。 Analytics Reporting API V4需要有效的OAuth token。想一想,您是否希望只有拥有API密钥的人才能访问您的GA数据? API需要验证用户是否有权访问数据。请仔细阅读各种OAuth Scenarios并找到与您的用例匹配的内容。
所以听起来你想用service account进行身份验证。问题不在于您的分析代码,而在于您的身份验证方式。要发出请求,您需要拥有有效的OAuth令牌。由于您明确列出了您对 .NET 感兴趣,因此您应该查看Google APIs .NET client library documentation。请注意,您需要将服务帐户电子邮件添加到您希望访问的Google Analytics(分析)视图中。