我想编写一个从 GA 导入网络统计数据的 PHP 脚本。该脚本可通过 Web 前端访问(用于触发导入)并位于本地服务器 (127.0.0.1) 上。
正如我从文档中了解到的那样,有两种用于验证和使用核心 API 的选项:
- API 密钥- 仅授予对统计信息的访问权限
- OAuth2 - 完全授权
如果我正确理解 OAuth2 的机制,那么在我的场景中这不是一个选项,因为我无法指定回调 URL。我想到了一些骇人听闻的解决方案——比如建立一个从浏览器直接连接到 GA 的 Web 配置文件身份验证,然后通过 JavaScript 获取数据并将其提供给导入脚本——但我宁愿避免使用这种解决方案。还因为触发导入过程的浏览器交互将来可能会被 cron 作业取代。
API 密钥似乎正是我想要的,但来自浏览器的 GET 请求失败。
获取请求:
https://www.googleapis.com/analytics/v3/data/ga
?ids=ga:[profile ID]
&start-date=2013-01-01&end-date=2013-01-05
&metrics=ga:visits
&key=[the API key]
回复:
{
error: {
errors: [
{
domain: "global",
reason: "required",
message: "Login Required",
locationType: "header",
location: "Authorization"
}
],
code: 401,
message: "Login Required"
}
}
URL虽然应该没问题。除了关键参数之外,它与使用http://ga-dev-tools.appspot.com/explorer/生成的参数相同(在这种情况下使用 AOuth2)。API 密钥是新的。
然后再次生成一个新的 API 密钥给我带来了下一个不便,即显然该密钥仅在一天内有效。
所以归根结底,我的问题是:
是否可以在上述场景中获取数据,而无需每天手动进行身份验证或生成 API 密钥?