Codeigniter网站上的Google Analytics API
我一直在试图让Google API在我的网站上工作好几天,但没有得到它的工作。在我搜索的任何地方,我都找到了过时的示例......我需要它来处理codeigniter,我想要做的就是从Google Analytics获取数据,以便在我的codeigniter网站上的管理控制台中显示。Codeigniter网站上的Google Analytics API
我明白,我需要一个服务帐户,如果我不希望被认证,每次我看仪表盘(?)
谁能请帮助我得到这个工作?提前感谢你!
我想要做的是:从谷歌分析获取数据,返回数据可能是JSON,然后我想我可以用一个插件制作一个图表(也许一些jQuery插件已经存在,或者我可以使用谷歌自己的图表抽屉?)并显示给管理员。我只是想要非常简单的数据,例如上个月有多少用户...
大约一周后 - 当然,在同一天我发布这个问题,我终于设法自己解决这个问题。
这是我如何去:
我从their github下载了最新的谷歌客户端API(对于PHP)。
我在我的应用程序/ third_party文件夹中添加了Google文件夹(src)。
在我的控制我包括所需的文件做:
require_once(BASEPATH . '../application/third_party/Google/Client.php');
require_once(BASEPATH . '../application/third_party/Google/Service/Analytics.php');
然后我在下面,下面的代码进行授权与服务帐户(你从Google Console获取和选择项目>的API & AUTH >凭据>然后创建一个新的客户端ID,选择服务帐户,完成后,点击“生成新的P12键”和键添加到您的THIRD_PARTY /谷歌文件夹:
session_start();
$client_id = '<YOUR_CLIENT_ID>'; //Client ID
$service_account_name = '<YOUR_CLIENT_EMAIL>'; //Email Address
$key_file_location = BASEPATH . '../application/third_party/Google/<YOUR KEY.p12>'; //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();
下面的代码是FO从上31天
$analytics = new Google_Service_Analytics($client);
$profileId = "ga:<YOUR_PROFILE_ID>";
$startDate = date('Y-m-d', strtotime('-31 days')); // 31 days from now
$endDate = date('Y-m-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
[R越来越会话(页面访问量)要获得所有可以使用的维度和指标,use this link。关于如何将其发送到视图 实施例:
$this->view->load('your_view', $data);
要写入它作为我只是用Google charts一个图表,在JS(在视图中)我刚刚从$循环数据的数据[“报告” ]绘制图表。
希望这将有助于未来这个问题的人。
我不明白为什么有人会低估这一点,因为更多的人可能有这个问题!我已经尝试过Sparks for Codeigniter的插件,但那个是两年前的,这意味着api已经过时了,并且所有在Google网站上的示例中的命名约定都是错误的... – Michael 2014-09-04 14:35:56