API отчетов Hello Analytics v4; Краткое руководство по Python для установленных приложений

В этом руководстве описаны шаги, необходимые для доступа к Analytics Reporting API версии 4.

1. Включите API

Чтобы приступить к работе с Analytics Reporting API v4, вам необходимо сначала использовать инструмент настройки , который поможет вам создать проект в Google API Console, включить API и создать учетные данные.

Примечание. Для создания идентификатора веб-клиента или установленного клиента приложения необходимо указать имя продукта на экране согласия. Если вы еще этого не сделали, вам будет предложено настроить экран согласия .

Создать учетные данные

  • Откройте страницу учетных данных .
  • Нажмите Создать учетные данные и выберите идентификатор клиента OAuth.
  • В качестве типа приложения выберите Другое .
  • Назовите краткое руководство по идентификатору клиента и нажмите « Создать » .

На странице «Учетные данные» щелкните только что созданный идентификатор клиента, нажмите « Загрузить JSON » и сохраните его как client_secrets.json ; он понадобится вам позже в учебнике.

2. Установите клиентскую библиотеку

Рекомендуется использовать pip вместе с venv для установки пакетов Python: 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 . Вы можете использовать Account Explorer , чтобы найти 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, где установленный по умолчанию модуль «six» (зависимость от этой библиотеки) загружается до того, который был установлен pip. Чтобы решить эту проблему, добавьте место установки pip в переменную системной среды PYTHONPATH :

  • Определите место установки pip с помощью следующей команды:

    пип-шоу шесть | grep "Расположение:" | вырезать -d "" -f2

  • Добавьте следующую строку в файл ~/.bashrc , заменив &lt;pip_install_path&gt; со значением, определенным выше:

    экспортировать PYTHONPATH=$PYTHONPATH:<pip_install_path>

  • Перезагрузите файл ~/.bashrc во всех открытых окнах терминала, используя следующую команду:

    источник ~/.bashrc