This series demonstrates using the Google Analytics API with PHP to access Google Analytics data. While Laravel and Homestead Improved are used in the example, the concepts apply to other frameworks and environments.
Key Concepts:
Google_Client
class handles authentication and token retrieval. It requires configuration with client ID, client secret, developer key, redirect URI, and scopes.Prerequisites:
Application Overview:
This tutorial builds a simplified Google Analytics Explorer clone, focusing on core functionality and extensibility.
Google Analytics API Details:
The Google Analytics API's key components are:
This tutorial uses the Management, Metadata, and Core Reporting APIs.
Basic API Usage:
localhost:8000
for development) and redirect URI. Generate a browser key (optional: specify HTTP referrers or leave blank for any origin).API Limits and Quotas:
Be aware of API request limits (per day, per second). Refer to the official documentation for details.
Project Setup (Laravel Example):
"google/api-client": "dev-master"
to composer.json
and run composer update
.app/config/analytics.php
with API credentials:return [ 'app_name' => 'Your app name', 'client_id' => 'Your Client ID', 'client_secret' => 'Your Client Secret', 'api_key' => 'Your API Key' ];
app/src/GA_Service.php
for API interaction logic:<?php namespace App\Src; use Config; use Google_Client; use Session; use Input; use View; class GA_Service { private $client; public function __construct(Google_Client $client) { $this->client = $client; $this->init(); } private function init() { $this->client->setClientId(Config::get('analytics.client_id')); $this->client->setClientSecret(Config::get('analytics.client_secret')); $this->client->setDeveloperKey(Config::get('analytics.api_key')); $this->client->setRedirectUri('http://localhost:8000/login'); // Adjust as needed $this->client->setScopes(['https://www.googleapis.com/auth/analytics']); } public function isLoggedIn() { if (isset($_SESSION['token'])) { $this->client->setAccessToken($_SESSION['token']); return true; } return false; } public function login($code) { $this->client->authenticate($code); $token = $this->client->getAccessToken(); $_SESSION['token'] = $token; return $token; } public function getLoginUrl() { return $this->client->createAuthUrl(); } // Add methods for data retrieval, etc. here... }
Add app/src
to the autoload
-> classmap
in composer.json
and run composer dump-autoload
.
Modify app/controllers/HomeController.php
(or your equivalent controller):
<?php use App\Src\GA_Service; class HomeController extends BaseController { private $ga; public function __construct(GA_Service $ga) { $this->ga = $ga; } public function index() { if ($this->ga->isLoggedIn()) { // Show home page with data return "You are logged in!"; // Replace with actual data display } else { $url = $this->ga->getLoginUrl(); return View::make('login', ['url' => $url]); } } public function login() { if (Input::has('code')) { $code = Input::get('code'); $token = $this->ga->login($code); return "Login successful! Token: " . $token; // Replace with redirection } else { return "Invalid request parameters"; } } }
app/routes.php
:Route::get('/', 'HomeController@index'); Route::get('/login', 'HomeController@login');
login.blade.php
view:<a href="https://www.php.cn/link/846437e17a8d1d5f37fe3bb0e1762499">Login with Google</a>
This completes the basic setup. The next steps would involve adding functions to GA_Service.php
to actually retrieve data using the Google Analytics API. Remember to handle potential errors appropriately. The provided code is a foundation upon which to build a more complete application. Consult the Google Analytics API documentation for details on making specific data requests.
The above is the detailed content of Using the Google Analytics API with PHP: Logging In. For more information, please follow other related articles on the PHP Chinese website!