Hello Analytics API: شروع سریع PHP برای برنامه های کاربردی وب

این آموزش مراحل مورد نیاز برای دسترسی به حساب Google Analytics، پرس و جو از API های Analytics، رسیدگی به پاسخ های API و خروجی نتایج را طی می کند. Core Reporting API v3.0 ، Management API v3.0 و OAuth2.0 در این آموزش استفاده شده است.

مرحله 1: API Analytics را فعال کنید

برای شروع استفاده از Google Analytics API، ابتدا باید از ابزار راه اندازی استفاده کنید که شما را از طریق ایجاد پروژه در کنسول API Google، فعال کردن API و ایجاد اعتبارنامه راهنمایی می کند.

یک شناسه مشتری ایجاد کنید

از صفحه اعتبارنامه:

  1. روی ایجاد اعتبارنامه کلیک کنید و شناسه مشتری OAuth را انتخاب کنید.
  2. برنامه وب را برای APPLICATION TYPE انتخاب کنید.
  3. اعتبارنامه را نام ببرید.
  4. AUTHORIZED JAVASCRIPT ORIGINS را خالی بگذارید، برای این آموزش نیازی به آن نیست.
  5. AUTHORIZED REDIRECT URIS را روی http://localhost:8080/oauth2callback.php تنظیم کنید
  6. روی ایجاد کلیک کنید.

اعتبارنامه ای را که ایجاد کردید انتخاب کنید و روی دانلود JSON کلیک کنید. فایل دانلود شده را با نام client_secrets.json ذخیره کنید. بعداً در آموزش به آن نیاز دارید.

مرحله ۲: کتابخانه Google Client را نصب کنید

می‌توانید Google APIs Client Library را برای دانلود نسخه PHP یا استفاده از Composer دریافت کنید:

composer require google/apiclient:^2.0

مرحله 3: نمونه را تنظیم کنید

شما باید دو فایل ایجاد کنید:

  1. index.php صفحه اصلی بازدید شده توسط کاربر خواهد بود.
  2. oauth2callback.php پاسخ OAuth 2.0 را مدیریت خواهد کرد.

index.php

این فایل حاوی منطق اصلی پرس و جو از API های گوگل آنالیتیکس و نمایش نتایج است. اولین کد نمونه را در index.php کپی یا دانلود کنید .

<?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_secretes.json you downloaded from the developer console.
$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_Analytics($client);

  // Get the first view (profile) id for the authorized user.
  $profile = getFirstProfileId($analytics);

  // Get the results from the Core Reporting API and print the results.
  $results = getResults($analytics, $profile);
  printResults($results);
} else {
  $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}


function getFirstProfileId($analytics) {
  // Get the user's first view (profile) ID.

  // Get the list of accounts for the authorized user.
  $accounts = $analytics->management_accounts->listManagementAccounts();

  if (count($accounts->getItems()) > 0) {
    $items = $accounts->getItems();
    $firstAccountId = $items[0]->getId();

    // Get the list of properties for the authorized user.
    $properties = $analytics->management_webproperties
        ->listManagementWebproperties($firstAccountId);

    if (count($properties->getItems()) > 0) {
      $items = $properties->getItems();
      $firstPropertyId = $items[0]->getId();

      // Get the list of views (profiles) for the authorized user.
      $profiles = $analytics->management_profiles
          ->listManagementProfiles($firstAccountId, $firstPropertyId);

      if (count($profiles->getItems()) > 0) {
        $items = $profiles->getItems();

        // Return the first view (profile) ID.
        return $items[0]->getId();

      } else {
        throw new Exception('No views (profiles) found for this user.');
      }
    } else {
      throw new Exception('No properties found for this user.');
    }
  } else {
    throw new Exception('No accounts found for this user.');
  }
}

function getResults($analytics, $profileId) {
  // Calls the Core Reporting API and queries for the number of sessions
  // for the last seven days.
  return $analytics->data_ga->get(
      'ga:' . $profileId,
      '7daysAgo',
      'today',
      'ga:sessions');
}

function printResults($results) {
  // Parses the response from the Core Reporting API and prints
  // the profile name and total sessions.
  if (count($results->getRows()) > 0) {

    // Get the profile name.
    $profileName = $results->getProfileInfo()->getProfileName();

    // Get the entry for the first entry in the first row.
    $rows = $results->getRows();
    $sessions = $rows[0][0];

    // Print the results.
    print "<p>First view (profile) found: $profileName</p>";
    print "<p>Total sessions: $sessions</p>";
  } else {
    print "<p>No results found.</p>";
  }
}

?>

oauth2callback.php

این فایل پاسخ OAuth 2.0 را مدیریت می کند. کد دوم نمونه را در oauth2callback.php کپی یا دانلود کنید .

<?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: نمونه را اجرا کنید

پس از اینکه API Analytics را فعال کردید، کتابخانه سرویس گیرنده Google APIs را برای PHP نصب کردید و کد منبع نمونه را تنظیم کردید، نمونه آماده اجرا است.

نمونه را با یک وب سرور پیکربندی شده برای سرویس PHP اجرا کنید. اگر از PHP 5.4 یا جدیدتر استفاده می کنید، می توانید با اجرای دستور زیر از وب سرور آزمایشی داخلی PHP استفاده کنید:

php -S localhost:8080 /path/to/sample

سپس در مرورگر خود به http://localhost:8080 مراجعه کنید.

پس از اتمام این مراحل، نمونه نام اولین نمای Google Analytics کاربر مجاز (نمایه) و تعداد جلسات هفت روز گذشته را نمایش می دهد.

با شیء مجاز سرویس Analytics، اکنون می توانید هر یک از نمونه کدهای موجود در اسناد مرجع مدیریت API را اجرا کنید. برای مثال، می‌توانید کد را برای استفاده از روش accountSummaries.list تغییر دهید.