Hello Analytics API: التشغيل السريع للغة PHP لتطبيقات الويب

يشرح هذا الدليل التوجيهي الخطوات المطلوبة للوصول إلى حساب على "إحصاءات Google" وإجراء طلبات بحث في واجهات برمجة تطبيقات "إحصاءات Google" والتعامل مع ردود واجهة برمجة التطبيقات والحصول على النتائج. يتم استخدام الإصدار 3.0 من واجهة برمجة التطبيقات الأساسية لإعداد التقارير والإصدار 3.0 من واجهة برمجة تطبيقات الإدارة وOAuth2.0 في هذا البرنامج التعليمي.

الخطوة 1: تفعيل واجهة برمجة تطبيقات "إحصاءات Google"

لبدء استخدام واجهة برمجة تطبيقات Google Analytics، عليك أولاً استخدام أداة الإعداد، التي ترشدك خلال عملية إنشاء مشروع في وحدة التحكم في واجهة Google API، وتفعيل واجهة برمجة التطبيقات، وإنشاء بيانات الاعتماد.

إنشاء معرِّف عميل

من صفحة "بيانات الاعتماد":

  1. انقر على إنشاء بيانات اعتماد واختَر معرِّف عميل OAuth.
  2. اختَر تطبيق الويب من أجل نوع التطبيق.
  3. أدخِل اسمًا لبيانات الاعتماد.
  4. اترك حقل مجلدات JavaScript المعتمَدة فارغًا، لن تكون هناك حاجة إليه في هذا البرنامج التعليمي.
  5. اضبط معرِّفات الموارد المنتظمة (URI) المعتمَدة لإعادة التوجيه على http://localhost:8080/oauth2callback.php
  6. انقر على إنشاء.

اختَر بيانات الاعتماد التي أنشأتها للتو وانقر على تنزيل JSON. احفظ الملف الذي تم تنزيله بتنسيق client_secrets.json، ستحتاج إليه لاحقًا في البرنامج التعليمي.

الخطوة 2: تثبيت مكتبة عملاء Google

يمكنك الحصول على مكتبة برامج Google APIs للغة PHP لتنزيل الإصدار أو باستخدام Composer:

composer require google/apiclient:^2.0

الخطوة 3: إعداد النموذج

ستحتاج إلى إنشاء ملفين:

  1. ستكون "index.php" هي الصفحة الرئيسية التي يزورها المستخدم.
  2. سيتعامل oauth2callback.php مع استجابة OAuth 2.0.

index.php

يحتوي هذا الملف على المنطق الرئيسي لإجراء طلبات بحث في واجهات برمجة تطبيقات "إحصاءات Google" وعرض النتائج. انسخ نموذج الرمز الأول أو نزِّله إلى 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: تشغيل العيّنة

بعد تفعيل واجهة برمجة التطبيقات Analytics API، تم تثبيت مكتبة برامج Google APIs للغة PHP، ثم إعداد نموذج رمز المصدر الذي يصبح النموذج جاهزًا للعرض.

تشغيل النموذج باستخدام خادم ويب تم إعداده لعرض لغة PHP. إذا كنت تستخدم الإصدار 5.4 من لغة PHP أو إصدارًا أحدث، فيمكنك استخدام خادم الويب التجريبي المدمج في PHP من خلال تنفيذ الأمر التالي:

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

بعد ذلك، انتقل إلى http://localhost:8080 في المتصفح.

عند الانتهاء من هذه الخطوات، يعرض النموذج اسم الملف الشخصي الأول للمستخدم المفوَّض على "إحصاءات Google" وعدد الجلسات خلال آخر سبعة أيام.

باستخدام عنصر خدمة "إحصاءات Google" المعتمَد، يمكنك الآن تشغيل أيّ من عيّنات التعليمات البرمجية المتوفّرة في المستندات المرجعية لواجهة Management API. على سبيل المثال، يمكنك محاولة تغيير الرمز لاستخدام طريقة accountSummaries.list.