Codeigniter网站上的Google Analytis API [英] Google Analytis API on Codeigniter website
问题描述
我已尝试让Google API在我的网站上工作数天,但无法使用。在任何地方我搜索我发现过时的例子...我需要它与codeigniter工作,我想做的是从Google Analytics(分析)获取数据显示在我的代码信息网站上的管理信息中心。
I've been trying to get Google API to work on my website for days now, but not getting it to work. Everywhere I search I find outdated examples... I need it to work with codeigniter and all I want to do is to fetch data from Google Analytics to show in the admin dashboard on my codeigniter website.
我知道我需要一个服务帐户,如果我不想在每次查看仪表板(?)时进行身份验证。
I understand that I need a Service Account, if I don't want to be authenticating everytime I look at the dashboard(?)
请帮助我使这工作?非常感谢你!
Can anyone please help me with getting this to work? Thank you so much in advance!
我想要做的是:从google analytics获取数据,返回那些数据可能是json,然后我想我可以做一个图表它与插件(也许一些jQuery插件已经存在,或者我可以使用谷歌自己的图表抽屉?)并显示给管理员。我只想要真正简单的数据,例如,上个月有多少用户...
What I want done is: Fetch data from google analytics, return that data as maybe json, then I guess I can make a chart out of it with a plugin (perhaps some jQuery plugin already exists, or can I use googles own chart drawers?) and show this to administrators. I just want really simple data, as for example, how many users the last month...
推荐答案
当然,在同一天我发布这个问题,我终于设法自己解决这个问题。
After about a week - and of course, on the same day I post this question, I finally manage to fix this myself.
这是我怎么走:
我从其github 下载了最新的Google Client API(适用于php)
I downloaded the latest Google Client API (for php) from their github.
我在应用程式/ third_party资料夹中新增了Google资料夹(src)。
I added the Google folder (src) in my application/third_party folder.
包含所需的文件:
require_once(BASEPATH . '../application/third_party/Google/Client.php');
require_once(BASEPATH . '../application/third_party/Google/Service/Analytics.php');
然后我添加了以下代码用于授权服务帐户href =https://console.developers.google.com/> Google控制台并选择您的项目> API& auth>凭据>然后创建新的客户端ID,选择服务帐户,完成后,按生成新p12键并将该键添加到您的third_party / Google文件夹:
Then I added the following code below that for authorization with Service Account (which you get from the Google Console and selecting your project > APIs & auth > Credentials > Then create a new Client ID, select Service Account, when done, press "Generate new p12 key" and add that key to your third_party/Google folder:
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();
以下代码用于获取过去31天的会话(网页访问)
The code below is for getting sessions (page visits) from the last 31 days
$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
要获取可以使用的所有维度和指标, 使用此链接。
如何将其发送到视图的示例:
To get all the dimensions and metrics that you can use, use this link. Example on how to send it to the view:
$this->view->load('your_view', $data);
要以图表形式写出来,我只是使用 Google图表,在JS中(在视图中)我刚刚从$ data ['report']循环数据以绘制图表。
To write it out as a chart I just used Google charts, in the JS (in the view) I just looped the data from $data['report'] to draw a chart.
希望这将有助于未来人们解决这个问题。
Hope this will help people with this problem in the future.
这篇关于Codeigniter网站上的Google Analytis API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!