我想编写一个从脚本中导入网站统计数据的PHP脚本。该脚本可通过Web前端访问(用于触发导入)并驻留在本地服务器(127.0.0.1)上。从本地服务器请求Google Analytics(分析)数据
当我从文档理解是,有用于验证和使用核心API两种选择:
- API密钥 - 只授予统计
- 的OAuth2访问 - 充分授权
如果我正确理解OAuth2的机制,那么在我的方案中这不是一个选项,因为我无法指定回调URL。 Hacky的解决方案出现在我脑海里 - 比如建立一个从浏览器直接连接到GA的Web配置认证,然后通过JavaScript获取数据并将其提供给导入脚本 - 但我宁愿不要这样的解决方案。另外,因为触发导入过程的浏览器交互将来可能会被cron作业取代。
API键似乎正是我想要的,但来自浏览器的GET请求失败。
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密钥面对我的下一个inconveniency这是很明显,关键是唯一有效的一天。
在这一天,我的问题结束
所以是这样的:
是否有可能无需手动认证或产生每天API密钥来获取在上述情况下的数据?
拿在[授权方式]好好看看(https://developers.google.com/analytics/devguides/reporting/core/v3/gdataAuthorization #common_oauth)可用。有2个应该为你工作。 ** Web服务器**和**服务帐户**。使用[Web服务器](https://developers.google.com/accounts/docs/OAuth2WebServer)方法,您仍然需要通过oAuth,但您只需要执行一次。之后,您将获得一个刷新令牌,您可以使用该令牌在需要时生成更多访问令牌,而无需再次通过oAuth流。 [服务帐户](https://developers.google.com/accou – Eduardo
好吧,也许这是诀窍,但我仍然对完整的回答感兴趣,同时也提到了其他提到的点 – Raffael