Bu eğitimde, Analytics Reporting API v4'e erişmek için gereken adımlar açıklanmaktadır.
1. API'yi etkinleştirme
Analytics Reporting API v4'ü kullanmaya başlamak için önce kurulum aracını kullanmanız gerekir. Bu araç, Google API Konsolu'nda proje oluşturma, API'yi etkinleştirme ve kimlik bilgileri oluşturma konusunda size rehberlik eder.
Not: Web İstemcisi Kimliği veya Yüklü Uygulama İstemcisi oluşturmak için izin ekranında bir ürün adı ayarlamanız gerekir. Henüz yapmadıysanız İzin ekranını yapılandırmanız istenir.Kimlik bilgileri oluştur
- Credentials (Kimlik Bilgileri) sayfasını açın.
- Kimlik bilgisi oluştur'u tıklayın ve OAuth istemci kimliği'ni seçin.
- Uygulama türü için Web uygulaması'nı seçin.
- İstemci kimliğini hızlı başlangıç olarak adlandırın ve Oluştur'u tıklayın.
- Yetkili JavaScript kaynakları'nı boş bırakın. Bu eğitici için gerekli değildir.
- Yetkili yönlendirme URI'leri değerini
http://localhost:8080/oauth2callback.php
olarak ayarlayın. - Oluştur'u tıklayın.
Kimlik bilgileri sayfasından yeni oluşturulan istemci kimliğini tıklayın ve JSON'yi indir'i tıklayıp client_secrets.json
olarak kaydedin. Daha sonra bu eğiticiye ihtiyacınız olacaktır.
2. İstemci kitaplığını yükleme
Karşılaştırma Aracı'nı kullanarak PHP için Google API'leri İstemci Kitaplığı'nı edinebilirsiniz:
composer require google/apiclient:^2.0
3. Örneği ayarlama
İki dosya oluşturmanız gerekir:
index.php
, kullanıcının ziyaret ettiği ana sayfa olur.oauth2callback.php
, OAuth 2.0 yanıtını işleyecek
dizin.php
Bu dosya, Google Analytics API'lerini sorgulamak ve sonuçları görüntülemek için kullanılan ana mantığı içerir.
- İlk örnek kodu
index.php
adresine kopyalayın veya indirin. VIEW_ID
değerini değiştirin. Görünüm Kimliğini bulmak için Hesap Gezgini'ni kullanabilirsiniz.
<?php // Load the Google API PHP Client Library. require_once __DIR__ . '/vendor/autoload.php'; session_start(); $client = new Google_Client(); $client->setAuthConfig(__DIR__ . '/client_secrets.json'); $client->addScope(Google_Service_Analytics::ANALYTICS_READONLY); // If the user has already authorized this app then get an access token // else redirect to ask the user to authorize access to Google Analytics. if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { // Set the access token on the client. $client->setAccessToken($_SESSION['access_token']); // Create an authorized analytics service object. $analytics = new Google_Service_AnalyticsReporting($client); // Call the Analytics Reporting API V4. $response = getReport($analytics); // Print the response. printResults($response); } else { $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php'; header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); } /** * Queries the Analytics Reporting API V4. * * @param service An authorized Analytics Reporting API V4 service object. * @return The Analytics Reporting API V4 response. */ function getReport($analytics) { // Replace with your view ID, for example XXXX. $VIEW_ID = "<REPLACE_WITH_VIEW_ID>"; // Create the DateRange object. $dateRange = new Google_Service_AnalyticsReporting_DateRange(); $dateRange->setStartDate("7daysAgo"); $dateRange->setEndDate("today"); // Create the Metrics object. $sessions = new Google_Service_AnalyticsReporting_Metric(); $sessions->setExpression("ga:sessions"); $sessions->setAlias("sessions"); // Create the ReportRequest object. $request = new Google_Service_AnalyticsReporting_ReportRequest(); $request->setViewId($VIEW_ID); $request->setDateRanges($dateRange); $request->setMetrics(array($sessions)); $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); $body->setReportRequests( array( $request) ); return $analytics->reports->batchGet( $body ); } /** * Parses and prints the Analytics Reporting API V4 response. * * @param An Analytics Reporting API V4 response. */ function printResults($reports) { for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) { $report = $reports[ $reportIndex ]; $header = $report->getColumnHeader(); $dimensionHeaders = $header->getDimensions(); $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); $rows = $report->getData()->getRows(); for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { $row = $rows[ $rowIndex ]; $dimensions = $row->getDimensions(); $metrics = $row->getMetrics(); for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); } for ($j = 0; $j < count($metrics); $j++) { $values = $metrics[$j]->getValues(); for ($k = 0; $k < count($values); $k++) { $entry = $metricHeaders[$k]; print($entry->getName() . ": " . $values[$k] . "\n"); } } } } }
oauth2callback.php
Bu dosya, OAuth 2.0 yanıtını işler. İkinci örnek kodu oauth2callback.php
adresine kopyalayın veya indirin.
<?php // Load the Google API PHP Client Library. require_once __DIR__ . '/vendor/autoload.php'; // Start a session to persist credentials. session_start(); // Create the client object and set the authorization configuration // from the client_secrets.json you downloaded from the Developers Console. $client = new Google_Client(); $client->setAuthConfig(__DIR__ . '/client_secrets.json'); $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php'); $client->addScope(Google_Service_Analytics::ANALYTICS_READONLY); // Handle authorization flow from the server. if (! isset($_GET['code'])) { $auth_url = $client->createAuthUrl(); header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL)); } else { $client->authenticate($_GET['code']); $_SESSION['access_token'] = $client->getAccessToken(); $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/'; header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); }
4. Örneği çalıştırma
Örneği, PHP'yi sunacak şekilde yapılandırılmış bir web sunucusuyla çalıştırın. PHP 5.4 veya daha yeni bir sürüm kullanıyorsanız aşağıdaki komutu çalıştırarak PHP' tarayıcının yerleşik test web sunucusunu kullanabilirsiniz:
php -S localhost:8080 -t /path/to/sample
Ardından tarayıcınızda http://localhost:8080
adresini ziyaret edin.
Bu adımları tamamladığınızda örnek, söz konusu görünüm için son yedi gündeki oturum sayısını gösterir.