7

Tôi đã cố gắng để Google API hoạt động trên trang web của mình trong nhiều ngày, nhưng không làm cho nó hoạt động. Ở khắp mọi nơi tôi tìm kiếm tôi tìm thấy các ví dụ lỗi thời ... Tôi cần nó để làm việc với codeigniter và tất cả những gì tôi muốn làm là lấy dữ liệu từ Google Analytics để hiển thị trong bảng điều khiển quản trị trên trang web codeigniter của tôi.API Google Analytics trên trang web Codeigniter

Tôi hiểu rằng tôi cần một tài khoản dịch vụ, nếu tôi không muốn được chứng thực mỗi khi nhìn vào bảng điều khiển (?)

Bất cứ ai có xin vui lòng giúp tôi với việc này để làm việc? Cảm ơn trước!

Điều tôi muốn làm là: Lấy dữ liệu từ google analytics, trả lại dữ liệu đó có thể là json, tôi đoán tôi có thể tạo biểu đồ bằng plugin (có lẽ một số plugin jQuery đã tồn tại hoặc tôi có thể sử dụng googles ngăn xếp biểu đồ?) và hiển thị điều này cho quản trị viên. Tôi chỉ muốn dữ liệu thực sự đơn giản, ví dụ: số lượng người dùng trong tháng trước ...

+1

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

Trả lời

16

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.

+1

Cảm ơn mã của bạn ... Tôi đã được trong cùng một mess như qs của bạn .. Ans của bạn cho thấy tất cả mọi thứ tôi bắt đầu kết thúc :) – Penny

+0

Điều này thực sự hữu ích, cảm ơn bạn! Thật không may, tôi nhận được lỗi "(403) Người dùng không có bất kỳ tài khoản Google Analytics nào." ... đây có phải là điều mà bạn tình cờ gặp phải không? –

+0

Không, xin lỗi, tôi chưa gặp sự cố này. – Michael

Các vấn đề liên quan