مرحبًا بواجهة برمجة تطبيقات التحليلات: البدء السريع بلغة PHP لتطبيقات الويب

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

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

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

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

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

  1. انقر على إنشاء بيانات اعتماد واختَر معرِّف عميل OAuth.
  2. اختَر تطبيق الويب في نوع التطبيق.
  3. أدخِل اسمًا لبيانات الاعتماد.
  4. اترك حقل AUTHORIZED ORIGINS فارغًا، حيث لن تكون هناك حاجة إليه في هذا البرنامج التعليمي.
  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: تشغيل العيّنة

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

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

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

ثم انتقل إلى http://localhost:8080 في متصفحك.

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

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