Hello Analytics Reporting API v4; شروع سریع PHP برای برنامه های کاربردی وب، Hello Analytics Reporting API v4. شروع سریع PHP برای برنامه های کاربردی وب

این آموزش مراحل لازم برای دسترسی به Analytics Reporting API v4 را طی می کند.

1. API را فعال کنید

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

توجه: برای ایجاد شناسه سرویس گیرنده وب یا سرویس گیرنده برنامه نصب شده، باید نام محصول را در صفحه رضایت تنظیم کنید. اگر قبلاً این کار را انجام نداده اید، از شما خواسته می شود صفحه رضایت را پیکربندی کنید .

اعتبارنامه ایجاد کنید

  • صفحه اعتبارنامه را باز کنید.
  • روی Create credentials کلیک کنید و OAuth Client ID را انتخاب کنید
  • برای نوع Application Web application را انتخاب کنید.
  • نام Quickstart را به شناسه مشتری بگذارید و روی ایجاد کلیک کنید.
  • مبداهای مجاز جاوا اسکریپت را خالی بگذارید، برای این آموزش نیازی به آن نیست.
  • URI های مجاز تغییر مسیر را روی http://localhost:8080/oauth2callback.php تنظیم کنید
  • روی ایجاد کلیک کنید.

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

2. کتابخانه مشتری را نصب کنید

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

composer require google/apiclient:^2.0

3. نمونه را راه اندازی کنید

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

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

index.php

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

  • اولین کد نمونه را در index.php کپی یا دانلود کنید .
  • مقدار VIEW_ID را جایگزین کنید. برای یافتن شناسه View می توانید از Account Explorer استفاده کنید.
<?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

این فایل پاسخ 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. نمونه را اجرا کنید

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

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

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

وقتی این مراحل را تمام کردید، نمونه تعداد جلسات هفت روز گذشته را برای نمای داده شده خروجی می دهد.

،

این آموزش مراحل لازم برای دسترسی به Analytics Reporting API v4 را طی می کند.

1. API را فعال کنید

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

توجه: برای ایجاد شناسه سرویس گیرنده وب یا سرویس گیرنده برنامه نصب شده، باید نام محصول را در صفحه رضایت تنظیم کنید. اگر قبلاً این کار را انجام نداده اید، از شما خواسته می شود صفحه رضایت را پیکربندی کنید .

اعتبارنامه ایجاد کنید

  • صفحه اعتبارنامه را باز کنید.
  • روی Create credentials کلیک کنید و OAuth Client ID را انتخاب کنید
  • برای نوع Application Web application را انتخاب کنید.
  • نام Quickstart را به شناسه مشتری بگذارید و روی ایجاد کلیک کنید.
  • مبداهای مجاز جاوا اسکریپت را خالی بگذارید، برای این آموزش نیازی به آن نیست.
  • URI های مجاز تغییر مسیر را روی http://localhost:8080/oauth2callback.php تنظیم کنید
  • روی ایجاد کلیک کنید.

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

2. کتابخانه مشتری را نصب کنید

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

composer require google/apiclient:^2.0

3. نمونه را راه اندازی کنید

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

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

index.php

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

  • اولین کد نمونه را در index.php کپی یا دانلود کنید .
  • مقدار VIEW_ID را جایگزین کنید. برای یافتن شناسه View می توانید از Account Explorer استفاده کنید.
<?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

این فایل پاسخ 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. نمونه را اجرا کنید

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

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

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

وقتی این مراحل را تمام کردید، نمونه تعداد جلسات هفت روز گذشته را برای نمای داده شده خروجی می دهد.