Sau khoảng một tuần - và tất nhiên, cùng ngày tôi đăng câu hỏi này, cuối cùng tôi cũng tự mình khắc phục vấn đề này.
Đây là cách tôi đi về:
Tôi đã tải về ứng dụng khách API Google mới nhất (đối với php) từ their github.
Tôi đã thêm thư mục Google (src) vào thư mục application/third_party của mình.
Bên trong bộ điều khiển của tôi, tôi bao gồm các tập tin cần thiết bằng cách thực hiện:
require_once(BASEPATH . '../application/third_party/Google/Client.php');
require_once(BASEPATH . '../application/third_party/Google/Service/Analytics.php');
Sau đó, tôi thêm vào đoạn mã sau thấp hơn cho phép bằng tài khoản dịch vụ (mà bạn nhận được từ các Google Console và chọn dự án của bạn> API & auth > Thông tin đăng nhập> sau đó tạo một ID khách hàng mới, chọn tài khoản dịch vụ, khi thực hiện xong, nhấn "Generate key p12 mới" và thêm chìa khóa đó để THIRD_PARTY bạn/thư mục Google:
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();
Đoạn code dưới đây là fo r nhận được phiên (thăm trang) từ 31 ngày qua
$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
Để có được tất cả các kích thước và số liệu mà bạn có thể sử dụng, use this link. Ví dụ về cách gửi nó vào xem:
$this->view->load('your_view', $data);
Để viết nó ra như một biểu đồ tôi chỉ sử dụng Google charts, trong JS (trong giao diện) Tôi chỉ looped dữ liệu từ $ data [ 'báo cáo' ] để vẽ biểu đồ.
Hy vọng điều này sẽ giúp những người có vấn đề này trong tương lai.
Tôi không hiểu tại sao một người nào đó sẽ downvote điều này, vì nhiều người hơn có thể gặp vấn đề này! Tôi đã thử các plugin cho Sparks cho Codeigniter, nhưng đó là một trong hai tuổi, có nghĩa là api là lỗi thời, và tất cả các quy ước đặt tên trong các ví dụ trên trang web googles là sai ... – Michael