在http://ga-dev-tools.appspot.com/explorer/上我向GA提出请求,该请求也适用于那里。我最终得到的URL如下所示:
https://www.googleapis.com/analytics/v3/data/ga
?ids=ga%3A12345678&metrics=ga%3Avisitors
&start-date=2013-11-19&end-date=2013-12-03&max-results=50
现在,如果我正确理解following paragraph ......
如果您的客户端应用程序不使用OAuth 2.0,那么它必须 在调用在云中启用的API时包含API密钥 控制台项目。应用程序将此密钥传递给所有API请求 作为key = API_key参数。
...然后我只需附加我在Google Cloud Console上生成的服务器API密钥,如下所示:
https://www.googleapis.com/analytics/v3/data/ga
?ids=ga%3A12345678&metrics=ga%3Avisitors
&start-date=2013-11-19&end-date=2013-12-03&max-results=50
&key=AI[...]TE
我应该收到一份包含数据的JSON。但相反,我收到一个错误:
{"error":{"errors":[{"domain":"global","reason":"required",
"message":"Login Required","locationType":"header",
"location":"Authorization"}],"code":401,"message":"Login Required"}}
我的错误或误解是什么?
您希望通过仅使用API密钥通过其API从GA请求数据,而不必使用除Curl之外的外部库来实现GET / POST请求。只有使用我知道的API密钥才能完成这项工作,因为Pentaho Kettle就是这样做的。
答案 0 :(得分:3)
如果没有经过授权/验证的用户,则无法使用Google AnalyticsAPI。虽然您的“应用程序”可能不会使用OAuth 2.0进行身份验证和授权,但您仍需要以某种方式授权/验证,而API Key不会这样做。
如果您阅读了与之关联的文档的其余部分,特别是Keys, access, security, and identity,您会看到它提到API密钥不用于授权。另外,请查看Choosing an Auth Mechanism以查看可用于身份验证的选项。
那一行
如果您的客户端应用程序不使用OAuth 2.0,那么它必须 包括API密钥..
指的是您使用的身份验证机制不是OAuth 2.0,而是其他类似OAuth 1.0,AuthSub或ClientLogin(均已弃用)的情况。在这些情况下,您需要包含API密钥,以便您的API请求可以与您的Cloud Console项目正确关联。
您可能需要查看Google Analytics核心报告API的Authorization文档。
如果您想使用CURL发出请求,那么您需要为每个请求发送一个访问令牌。
答案 1 :(得分:0)
您还可以查看使用google-analytics-super-proxy
这将允许您创建端点以提取数据。 超级代理将处理auth,您的应用程序可以使用端点来获取所需的数据
REF:https://developers.google.com/analytics/solutions/google-analytics-super-proxy