Hello Analytics Reporting API v4; راه اندازی سریع پایتون برای برنامه های نصب شده

این آموزش مراحل لازم برای دسترسی به Analytics Reporting API v4 را طی می کند.

1. API را فعال کنید

برای شروع استفاده از Analytics Reporting API v4، ابتدا باید از ابزار setup استفاده کنید که شما را از طریق ایجاد پروژه در Google API Console، فعال کردن API و ایجاد اعتبارنامه راهنمایی می‌کند.

توجه: برای ایجاد شناسه سرویس گیرنده وب یا سرویس گیرنده برنامه نصب شده، باید نام محصول را در صفحه رضایت تنظیم کنید. اگر قبلاً این کار را انجام نداده اید، از شما خواسته می شود صفحه رضایت را پیکربندی کنید .

اعتبارنامه ایجاد کنید

  • صفحه اعتبارنامه را باز کنید.
  • روی Create credentials کلیک کنید و OAuth Client ID را انتخاب کنید
  • برای نوع Application Other را انتخاب کنید.
  • نام Quickstart را به شناسه مشتری بگذارید و روی ایجاد کلیک کنید.

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

2. کتابخانه مشتری را نصب کنید

استفاده از pip همراه با venv روش توصیه شده برای نصب بسته های پایتون است: sudo -s apt-get install python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/bin/activate pip install --upgrade google-api-python- کلاینت پیپ نصب -- ارتقا oauth2client

3. نمونه را راه اندازی کنید

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

  1. کد منبع زیر را در HelloAnalytics.py کپی یا دانلود کنید .
  2. client_secrets.json دانلود شده قبلی را به همان دایرکتوری کد نمونه منتقل کنید.
  3. مقدار VIEW_ID را جایگزین کنید. برای یافتن شناسه View می توانید از Account Explorer استفاده کنید.
"""Hello Analytics Reporting API V4."""

import argparse

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

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
CLIENT_SECRETS_PATH = 'client_secrets.json' # Path to client_secrets.json file.
VIEW_ID = '<REPLACE_WITH_VIEW_ID>'


def initialize_analyticsreporting():
  """Initializes the analyticsreporting service object.

  Returns:
    analytics an authorized analyticsreporting service object.
  """
  # 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=SCOPES,
      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('analyticsreporting.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.
  analytics = build('analyticsreporting', 'v4', http=http)

  return analytics

def get_report(analytics):
  # Use the Analytics Service Object to query the Analytics Reporting API V4.
  return analytics.reports().batchGet(
      body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:sessions'}]
        }]
      }
  ).execute()


def print_response(response):
  """Parses and prints the Analytics Reporting API V4 response"""

  for report in response.get('reports', []):
    columnHeader = report.get('columnHeader', {})
    dimensionHeaders = columnHeader.get('dimensions', [])
    metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])
    rows = report.get('data', {}).get('rows', [])

    for row in rows:
      dimensions = row.get('dimensions', [])
      dateRangeValues = row.get('metrics', [])

      for header, dimension in zip(dimensionHeaders, dimensions):
        print header + ': ' + dimension

      for i, values in enumerate(dateRangeValues):
        print 'Date range (' + str(i) + ')'
        for metricHeader, value in zip(metricHeaders, values.get('values')):
          print metricHeader.get('name') + ': ' + value


def main():

  analytics = initialize_analyticsreporting()
  response = get_report(analytics)
  print_response(response)

if __name__ == '__main__':
  main()

4. نمونه را اجرا کنید

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

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

وقتی این مراحل را تمام کردید، نمونه تعداد جلسات هفت روز گذشته را برای نمای داده شده خروجی می دهد.

عیب یابی

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

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

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

    پیپ شو شش | grep "مکان:" | برش -d " " -f2

  • خط زیر را به فایل ~/.bashrc خود اضافه کنید و جایگزین &lt;pip_install_path&gt; با مقدار تعیین شده در بالا:

    صادرات PYTHONPATH=$PYTHONPATH:<pip_install_path>

  • فایل ~/.bashrc خود را در هر پنجره ترمینال باز با استفاده از دستور زیر بارگیری مجدد کنید:

    منبع ~/.bashrc