Codeigniter网站上的Google AnalyticsAPI

我一直试图让Google API在我的网站上工作好几天,但没有让它工作。 在我搜索的任何地方,我发现过时的例子……我需要它与codeigniter合作,而我想要做的就是从Google Analytics中获取数据,以显示在我的codeigniter网站上的管理仪表板中。

我知道我需要一个服务帐户,如果我不想每次看仪表板时都要进行身份validation(?)

有人可以帮助我让这个工作吗? 非常感谢你提前!

我想要做的是:从谷歌分析中获取数据,将该数据作为json返回,然后我想我可以用插件制作一个图表(也许一些jQuery插件已经存在,或者我可以使用谷歌自己的图表抽屉? )并向管理员显示。 我只想要非常简单的数据,例如,上个月有多少用户……

大约一个星期后 – 当然,在我发布这个问题的同一天,我终于设法解决了这个问题。

这是我的方式:

我从他们的github下载了最新的Google Client API(用于php)。

我在我的application / third_party文件夹中添加了Google文件夹(src)。

在我的控制器中,我通过以下方式包含了所需的文

require_once(BASEPATH . '../application/third_party/Google/Client.php'); require_once(BASEPATH . '../application/third_party/Google/Service/Analytics.php'); 

然后,我在下面添加了以下代码,用于授权服务帐户(您从Google控制台获取并选择项目> API&auth>凭据>然后创建新的客户端ID,选择服务帐户,完成后,按“生成新的” p12键“并将该键添加到您的third_party / Google文件夹:

 session_start(); $client_id = ''; //Client ID $service_account_name = ''; //Email Address $key_file_location = BASEPATH . '../application/third_party/Google/'; //key.p12 $client = new Google_Client(); $client->setApplicationName("ApplicationName"); $service = new Google_Service_Analytics($client); if (isset($_SESSION['service_token'])) { $client->setAccessToken($_SESSION['service_token']); } $key = file_get_contents($key_file_location); $cred = new Google_Auth_AssertionCredentials( $service_account_name, array( 'https://www.googleapis.com/auth/analytics', ), $key, 'notasecret' ); $client->setAssertionCredentials($cred); if($client->getAuth()->isAccessTokenExpired()) { $client->getAuth()->refreshTokenWithAssertion($cred); } $_SESSION['service_token'] = $client->getAccessToken(); 

以下代码用于获取过去31天的会话(页面访问次数)

 $analytics = new Google_Service_Analytics($client); $profileId = "ga:"; $startDate = date('Ym-d', strtotime('-31 days')); // 31 days from now $endDate = date('Ym-d'); // todays date $metrics = "ga:sessions"; $optParams = array("dimensions" => "ga:date"); $results = $analytics->data_ga->get($profileId, $startDate, $endDate, $metrics, $optParams); $data['report'] = $results->rows; //To send it to the view later 

要获取可以使用的所有维度和指标,请使用此链接 。 有关如何将其发送到视图的示例:

 $this->view->load('your_view', $data); 

要把它写成图表,我只是使用谷歌图表 ,在JS(在视图中)我只是循环来自$ data [‘report’]的数据来绘制图表。

希望这将有助于人们解决这个问题。