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

این آموزش مراحل مورد نیاز برای دسترسی به حساب 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. دیگر را برای نوع برنامه انتخاب کنید.
  3. اعتبارنامه را نام ببرید.
  4. روی ایجاد کلیک کنید.

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

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

برای نصب Google Analytics API Java Client، باید یک فایل زیپ حاوی تمام شیشه‌هایی را که باید استخراج و در مسیر کلاس جاوا کپی کنید، دانلود کنید.

  1. کتابخانه سرویس گیرنده Google Analytics Java را دانلود کنید، که به عنوان یک فایل ZIP با تمام وابستگی های مورد نیاز همراه است.
  2. فایل ZIP را استخراج کنید
  3. همه JARهای داخل دایرکتوری libs را به classpath خود اضافه کنید.
  4. jar google-api-services-analytics-v3-[version].jar را به کلاس خود اضافه کنید.

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

شما باید یک فایل به نام HelloAnalytics.java ایجاد کنید که حاوی کد نمونه داده شده باشد.

  1. کد منبع زیر را در HelloAnalytics.java کپی یا دانلود کنید .
  2. client_secrets.json دانلود شده قبلی را در همان فهرست کد نمونه منتقل کنید.
import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.client.util.store.FileDataStoreFactory;
import com.google.api.services.analytics.Analytics;
import com.google.api.services.analytics.AnalyticsScopes;
import com.google.api.services.analytics.model.Accounts;
import com.google.api.services.analytics.model.GaData;
import com.google.api.services.analytics.model.Profiles;
import com.google.api.services.analytics.model.Webproperties;

import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;


/**
 * A simple example of how to access the Google Analytics API.
 */
public class HelloAnalytics {
  // Path to client_secrets.json file downloaded from the Developer's Console.
  // The path is relative to HelloAnalytics.java.
  private static final String CLIENT_SECRET_JSON_RESOURCE = "client_secrets.json";

  // The directory where the user's credentials will be stored.
  private static final File DATA_STORE_DIR = new File(
      System.getProperty("user.home"), ".store/hello_analytics");

  private static final String APPLICATION_NAME = "Hello Analytics";
  private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
  private static NetHttpTransport httpTransport;
  private static FileDataStoreFactory dataStoreFactory;

  public static void main(String[] args) {
    try {
      Analytics analytics = initializeAnalytics();
      String profile = getFirstProfileId(analytics);
      printResults(getResults(analytics, profile));
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  private static Analytics initializeAnalytics() throws Exception {

    httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR);

    // Load client secrets.
    GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
        new InputStreamReader(HelloAnalytics.class
            .getResourceAsStream(CLIENT_SECRET_JSON_RESOURCE)));

    // Set up authorization code flow for all auth scopes.
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow
        .Builder(httpTransport, JSON_FACTORY, clientSecrets,
        AnalyticsScopes.all()).setDataStoreFactory(dataStoreFactory)
        .build();

    // Authorize.
    Credential credential = new AuthorizationCodeInstalledApp(flow,
        new LocalServerReceiver()).authorize("user");

    // Construct the Analytics service object.
    return new Analytics.Builder(httpTransport, JSON_FACTORY, credential)
        .setApplicationName(APPLICATION_NAME).build();
  }

  private static String getFirstProfileId(Analytics analytics) throws IOException {
    // Get the first view (profile) ID for the authorized user.
    String profileId = null;

    // Query for the list of all accounts associated with the service account.
    Accounts accounts = analytics.management().accounts().list().execute();

    if (accounts.getItems().isEmpty()) {
      System.err.println("No accounts found");
    } else {
      String firstAccountId = accounts.getItems().get(0).getId();

      // Query for the list of properties associated with the first account.
      Webproperties properties = analytics.management().webproperties()
          .list(firstAccountId).execute();

      if (properties.getItems().isEmpty()) {
        System.err.println("No properties found");
      } else {
        String firstWebpropertyId = properties.getItems().get(0).getId();

        // Query for the list views (profiles) associated with the property.
        Profiles profiles = analytics.management().profiles()
            .list(firstAccountId, firstWebpropertyId).execute();

        if (profiles.getItems().isEmpty()) {
          System.err.println("No views (profiles) found");
        } else {
          // Return the first (view) profile associated with the property.
          profileId = profiles.getItems().get(0).getId();
        }
      }
    }
    return profileId;
  }

  private static GaData getResults(Analytics analytics, String profileId) throws IOException {
    // Query the Core Reporting API for the number of sessions
    // in the past seven days.
    return analytics.data().ga()
        .get("ga:" + profileId, "7daysAgo", "today", "ga:sessions")
        .execute();
  }

  private static void printResults(GaData results) {
    // Parse the response from the Core Reporting API for
    // the profile name and number of sessions.
    if (results != null && !results.getRows().isEmpty()) {
      System.out.println("View (Profile) Name: "
        + results.getProfileInfo().getProfileName());
      System.out.println("Total Sessions: " + results.getRows().get(0).get(0));
    } else {
      System.out.println("No results found");
    }
  }
}

مرحله 4: نمونه را اجرا کنید

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

اگر از یک IDE استفاده می‌کنید، مطمئن شوید که یک هدف اجرای پیش‌فرض روی کلاس HelloAnalytics تنظیم شده است.

  1. برنامه صفحه مجوز را در یک مرورگر بارگیری می کند.
  2. اگر قبلاً وارد حساب Google خود نشده‌اید، از شما خواسته می‌شود که وارد شوید. اگر به چندین حساب Google وارد شده‌اید، از شما خواسته می‌شود یک حساب را برای استفاده برای مجوز انتخاب کنید.

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

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