Hello Analytics Reporting API v4; web uygulamaları için PHP hızlı başlangıç kılavuzu

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 Google API Konsolu'nda proje oluşturma, API'yi etkinleştirme ve kimlik bilgileri oluşturma konusunda size yol gösterecek olan kurulum aracını kullanmanız gerekir.

Not: Web İstemci Kimliği veya Yüklü Uygulama İstemcisi oluşturmak için izin ekranında bir ürün adı belirlemeniz gerekir. Henüz yapmadıysanız İzin ekranını yapılandırma yapmanız istenir.

Kimlik bilgileri oluştur

  • Credentials (Kimlik Bilgileri) sayfasını açın.
  • Kimlik bilgileri 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 quickstart olarak adlandırın ve quickstart'u tıklayın.
  • Bu eğitim için gerekli olmadığından Yetkilendirilmiş JavaScript kaynakları alanını boş bırakın.
  • Yetkilendirilmiş yönlendirme URI'leri alanını http://localhost:8080/oauth2callback.php olarak ayarlayın.
  • Create'i (Oluştur) tıklayın.

Kimlik bilgileri sayfasında yeni oluşturulan istemci kimliğini tıklayın ve JSON'yi indir'i tıklayıp client_secrets.json olarak kaydedin. Eğitimin ilerleyen bölümlerinde bu bilgiye ihtiyacınız olacaktır.

2. İstemci kitaplığını yükleme

PHP için Google API'leri İstemci Kitaplığı'nı Composer'ı kullanarak edinebilirsiniz:

composer require google/apiclient:^2.0

3. Örneği oluşturun

İki dosya oluşturmanız gerekir:

  • index.php, kullanıcı tarafından ziyaret edilen ana sayfa olacaktır.
  • oauth2callback.php, OAuth 2.0 yanıtını ele alır

index.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 hizmetine kopyalayın veya indirin.
  • VIEW_ID değerini değiştirin. Bir Görünüm Kimliği'ni 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 hizmetine 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ır

Örneği, PHP'ye hizmet verecek ş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'nin 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, belirtilen görünüm için son yedi gündeki oturum sayısını verir.