Доступ к API Google Analytics без создания учетной записи службы client_secrets - PullRequest
0 голосов
/ 11 декабря 2019

Я пытаюсь получить доступ к отчету Google Analytics (v4) клиента, поэтому не могу создать свой собственный файл client_secrets.json. В прошлом я использовал библиотеку oauth2client для создания объекта потока и хранилища для аутентификации через http. Текущая документация Google по-прежнему использует библиотеку oauth2client, которая согласно pypi.org (и google) устарела в сентябре 2018 года.

Вот текущий код, который мы используем для создания сервиса:

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

Текущую документацию по Google можно найти здесь: https://developers.google.com/analytics/devguides/config/mgmt/v3/quickstart/installed-py

Как создать эту сборку без получения определенных client_secrets от клиента и без использования oauth2client?

1 Ответ

0 голосов
/ 12 декабря 2019

Если вы используете поток учетной записи службы , все, что вам нужно сделать, это попросить вашего клиента добавить дополнительного пользователя (который является просто подключением к учетной записи API) в свою учетную запись / свойство / представление аналитики, которое вытребуется доступ, и это также означает, что вам не нужно создавать поток oauth2.

Здесь приведены пошаговые инструкции по настройке и использованию с библиотекой python:

https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-py

...