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 را نصب کنید

می توانید از یک مدیریت بسته استفاده کنید یا کتابخانه کلاینت پایتون را به صورت دستی دانلود و نصب کنید:

پیپ

از pip ، ابزار توصیه شده برای نصب بسته های پایتون استفاده کنید:

sudo pip install --upgrade google-api-python-client

ابزارهای نصب

از ابزار easy_install موجود در بسته setuptools استفاده کنید:

sudo easy_install --upgrade google-api-python-client

نصب دستی

آخرین کتابخانه مشتری برای پایتون را دانلود کنید، کد را باز کنید و اجرا کنید:

sudo python setup.py install

ممکن است لازم باشد برای نصب در سیستم پایتون، دستوری را با امتیازات superuser ( sudo ) فراخوانی کنید.

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

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

  1. کد منبع زیر را در HelloAnalytics.py کپی یا دانلود کنید .
  2. client_secrets.json دانلود شده قبلی را در همان فهرست کد نمونه منتقل کنید.
"""A simple example of how to access the Google Analytics API."""

import argparse

from apiclient.discovery import build
import httplib2
from oauth2client import client
from oauth2client import file
from oauth2client import tools


def get_service(api_name, api_version, scope, client_secrets_path):
  """Get a service that communicates to a Google API.

  Args:
    api_name: string The name of the api to connect to.
    api_version: string The api version to connect to.
    scope: A list of strings representing the auth scopes to authorize for the
      connection.
    client_secrets_path: string A path to a valid client secrets file.

  Returns:
    A service that is connected to the specified API.
  """
  # Parse command-line arguments.
  parser = argparse.ArgumentParser(
      formatter_class=argparse.RawDescriptionHelpFormatter,
      parents=[tools.argparser])
  flags = parser.parse_args([])

  # Set up a Flow object to be used if we need to authenticate.
  flow = client.flow_from_clientsecrets(
      client_secrets_path, scope=scope,
      message=tools.message_if_missing(client_secrets_path))

  # Prepare credentials, and authorize HTTP object with them.
  # If the credentials don't exist or are invalid run through the native client
  # flow. The Storage object will ensure that if successful the good
  # credentials will get written back to a file.
  storage = file.Storage(api_name + '.dat')
  credentials = storage.get()
  if credentials is None or credentials.invalid:
    credentials = tools.run_flow(flow, storage, flags)
  http = credentials.authorize(http=httplib2.Http())

  # Build the service object.
  service = build(api_name, api_version, http=http)

  return service


def get_first_profile_id(service):
  # Use the Analytics service object to get the first profile id.

  # Get a list of all Google Analytics accounts for the authorized user.
  accounts = service.management().accounts().list().execute()

  if accounts.get('items'):
    # Get the first Google Analytics account.
    account = accounts.get('items')[0].get('id')

    # Get a list of all the properties for the first account.
    properties = service.management().webproperties().list(
        accountId=account).execute()

    if properties.get('items'):
      # Get the first property id.
      property = properties.get('items')[0].get('id')

      # Get a list of all views (profiles) for the first property.
      profiles = service.management().profiles().list(
          accountId=account,
          webPropertyId=property).execute()

      if profiles.get('items'):
        # return the first view (profile) id.
        return profiles.get('items')[0].get('id')

  return None


def get_results(service, profile_id):
  # Use the Analytics Service Object to query the Core Reporting API
  # for the number of sessions in the past seven days.
  return service.data().ga().get(
      ids='ga:' + profile_id,
      start_date='7daysAgo',
      end_date='today',
      metrics='ga:sessions').execute()


def print_results(results):
  # Print data nicely for the user.
  if results:
    print 'View (Profile): %s' % results.get('profileInfo').get('profileName')
    print 'Total Sessions: %s' % results.get('rows')[0][0]

  else:
    print 'No results found'


def main():
  # Define the auth scopes to request.
  scope = ['https://www.googleapis.com/auth/analytics.readonly']

  # Authenticate and construct service.
  service = get_service('analytics', 'v3', scope, 'client_secrets.json')
  profile = get_first_profile_id(service)
  print_results(get_results(service, profile))


if __name__ == '__main__':
  main()

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

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

نمونه را با استفاده از:

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

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

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

عیب یابی

AttributeError: شی «Module_six_moves_urllib_parse» هیچ ویژگی «urlparse» ندارد

این خطا می تواند در Mac OSX رخ دهد که در آن نصب پیش فرض ماژول "six" (وابسته این کتابخانه) قبل از نصبی که پیپ نصب شده بارگیری می شود. برای رفع مشکل، محل نصب پیپ را به متغیر محیطی سیستم PYTHONPATH اضافه کنید:

  1. محل نصب پیپ را با دستور زیر مشخص کنید:

    pip show six | grep "Location:" | cut -d " " -f2
    

  2. خط زیر را به فایل ~/.bashrc خود اضافه کنید و <pip_install_path> را با مقدار تعیین شده در بالا جایگزین کنید:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. فایل ~/.bashrc خود را در هر پنجره ترمینال باز با استفاده از دستور زیر بارگیری مجدد کنید:

    source ~/.bashrc