สวัสดี Analytics API: การเริ่มต้นใช้งาน PHP อย่างรวดเร็วสำหรับเว็บแอปพลิเคชัน

บทแนะนำนี้จะอธิบายขั้นตอนที่จำเป็นในการเข้าถึงบัญชี Google Analytics, ค้นหา Analytics API, จัดการการตอบกลับของ API และแสดงผลลัพธ์ บทแนะนำนี้ใช้ Core Reporting API v3.0, Management API v3.0 และ OAuth2.0

ขั้นตอนที่ 1: เปิดใช้ Analytics API

หากต้องการเริ่มต้นใช้งาน Google Analytics API ก่อนอื่นคุณต้องใช้เครื่องมือการตั้งค่า ซึ่งจะแนะนำขั้นตอนการสร้างโปรเจ็กต์ในคอนโซล Google API เปิดใช้ 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: ตั้งค่าตัวอย่าง

คุณจะต้องสร้างไฟล์ 2 ไฟล์ ดังนี้

  1. index.php จะเป็นหน้าหลักที่ผู้ใช้เข้าชม
  2. oauth2callback.php จะจัดการ การตอบสนอง OAuth 2.0

index.php

ไฟล์นี้มีตรรกะหลักสําหรับการค้นหา API ของ Google Analytics และแสดงผลลัพธ์ คัดลอกหรือดาวน์โหลดโค้ดตัวอย่างแรกไปยัง 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 คัดลอกหรือ ดาวน์โหลดโค้ดตัวอย่างที่ 2 ไปยัง 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 หากใช้ PHP 5.4 หรือใหม่กว่า คุณสามารถใช้เว็บเซิร์ฟเวอร์ทดสอบในตัวของ PHP ได้โดยเรียกใช้คำสั่งต่อไปนี้

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

จากนั้นไปที่ http://localhost:8080 ในเบราว์เซอร์

เมื่อทําตามขั้นตอนเหล่านี้เสร็จแล้ว ตัวอย่างจะแสดงชื่อข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) แรกของ Google Analytics ของผู้ใช้ที่ได้รับอนุญาตและจํานวนเซสชันในช่วง 7 วันที่ผ่านมา

ด้วยออบเจ็กต์บริการ Analytics ที่ได้รับอนุญาต ตอนนี้คุณจะเรียกใช้ตัวอย่างโค้ดที่อยู่ใน เอกสารอ้างอิงของ Management API ได้แล้ว ตัวอย่างเช่น คุณอาจลองเปลี่ยนโค้ดเพื่อใช้เมธอด accountSummaries.list