مرحبًا Analytics Reporting API الإصدار 4، دليل البدء السريع بلغة بايثون للتطبيقات المثبّتة

يرشدك هذا الدليل التعليمي إلى الخطوات المطلوبة للوصول إلى الإصدار 4 من Analytics Reporting API.

1- تفعيل واجهة برمجة التطبيقات

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

ملاحظة: لإنشاء معرِّف عميل ويب أو عميل تطبيق مثبَّت، عليك تحديد اسم منتج في شاشة الموافقة. إذا لم يسبق لك إجراء ذلك، سيُطلب منك ضبط شاشة طلب الموافقة.

إنشاء بيانات اعتماد

  • افتح صفحة بيانات الاعتماد.
  • انقر على إنشاء بيانات اعتماد واختَر معرِّف عميل OAuth.
  • في حقل نوع التطبيق، اختَر غير ذلك.
  • أدخِل اسمًا quickstart لمعرِّف العميل وانقر على quickstart.

من صفحة بيانات الاعتماد، انقر على معرِّف العميل الذي تم إنشاؤه حديثًا، ثم انقر على تنزيل JSON واحفظه باسم client_secrets.json. ستحتاج إليه لاحقًا في البرنامج التعليمي.

2. تثبيت مكتبة البرامج

إنّ استخدام pip مع venv هو الطريقة الموصى بها لتثبيت حزم Python : sudo -s apt-get install python3-venv python3 -m venv analytics-start source analytics-quickstart/bin/activate pip install --upgrade google-api-python-client authauth install --upgrade google-api-python-client authauth install --upgrade

3- إعداد النموذج

يجب إنشاء ملف واحد باسم HelloAnalytics.py، يتضمّن الرمز النموذجي المحدّد.

  1. انسخ أو نزِّل رمز المصدر التالي إلى HelloAnalytics.py.
  2. انقل ملف client_secrets.json الذي سبق تنزيله إلى الدليل نفسه الذي يتضمّن الرمز النموذجي.
  3. استبدِل قيمة VIEW_ID. يمكنك استخدام مستكشف الحساب للعثور على رقم تعريف ملف شخصي.
"""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 حيث يتم تحميل التثبيت الافتراضي للوحدة "ستة" (وهي تبعية لهذه المكتبة) قبل الوحدة التي تم تثبيتها باستخدام نافذة pip. لحلّ المشكلة، أضِف موقع تثبيت pip إلى متغير بيئة نظام PYTHONPATH:

  • حدِّد مكان تثبيت pip باستخدام الأمر التالي:

    عرض صور 6 | grep "الموقع:" | قص -d " " -f2

  • أضِف السطر التالي إلى ملف ~/.bashrc، مع استبدال &lt;pip_install_path&gt; بالقيمة المحددة أعلاه:

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

  • أعد تحميل ملف ~/.bashrc في أي نوافذ طرفية مفتوحة باستخدام الأمر التالي:

    المصدر ~/.bashrc