php – 从本地服务器请求Google Analytics数据
我想编写一个从GA导入Web统计数据的
PHP脚本.该脚本可通过Web前端访问(用于触发导入)并驻留在本地服务器(127.0.0.1)上.
我从文档中了解到,验证和使用核心API有两种选择: > API密钥 – 仅授予对统计信息的访问权限 如果我正确理解OAuth2的机制,那么在我的场景中这不是一个选项,因为我无法指定回调URL.哈克的解决方案来我的心 – 就像直接建立的Web Profile认证从浏览器连接到GA,然后由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密钥使我面临下一个不便之处,即显然密钥仅在一天内有效. 所以在一天结束时我的问题是: 是否可以在上述方案中获取数据,而无需每天手动进行身份验证或生成API密钥?
如前所述,使用此库:
https://code.google.com/p/google-api-php-client/
但是,不是使用oauth,而是从api控制台创建服务帐户(只需选择服务器应用程序).这将为您提供客户端ID,标识服务帐户的电子邮件以及包含私钥的* .p12文件. 然后,您必须以管理员用户的身份将服务帐户(电子邮件)添加到分析中,以获取所需的数据. 要使用该服务: $client = new Google_Client(); $client->setApplicationName('test'); $client->setAssertionCredentials( new Google_AssertionCredentials( EMAIL,array('https://www.googleapis.com/auth/analytics.readonly'),file_get_contents(PRIVATE_KEY_FILEPATH) ) ); $client->setClientId(CLIENT_ID); $client->setAccessType('offline_access'); $analytics = new Google_AnalyticsService($client); 要获得一些数据: $analytics->data_ga->get(PROFILE_ID,$date_from,$date_to,$metrics,$optParams) 有关详细信息,请查看api文档.另外,要小心,有一个查询上限(除非你支付) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |