Python - google analytics - загрузить данные о товарах - через api

Купить использовать Google Analytics API (V4) Я хочу загрузить файл "Данные о продукте"

Это пример кода из документации Google Analytics.

from apiclient.http import MediaFileUpload
try:
  media = MediaFileUpload('custom_data.csv',
                          mimetype='application/octet-stream',
                          resumable=False)
  daily_upload = analytics.management().uploads().uploadData(
      accountId='123456',
      webPropertyId='UA-123456-1',
      customDataSourceId='9876654321',
      media_body=media).execute()

except TypeError, error:
  # Handle errors in constructing a query.
  print 'There was an error in constructing your query : %s' % error

except HttpError, error:
  # Handle API errors.
  print ('There was an API error : %s : %s' %
         (error.resp.status, error.resp.reason))

Это то, что я сделал, но у меня все еще есть проблема с этой частью - analytics.management().uploads()

import argparse

from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

import httplib2
from oauth2client import client
from oauth2client import file
from oauth2client import tools
from googleapiclient.http import MediaFileUpload


# SET VARS
CUSTOM_DATA_SOURCE_ID='_xxxxxxx'
WEB_PROPERTY_ID='UA-xxxxx-1'
ACCOUNT_ID='xxxxxx'
CSV_IMPORT_FILE_LOCATION='test_file.csv'
CREDENTIALS_KEY_FILE_LOCATION='key.json'

def get_service(api_name, api_version, scope, key_file_location):

  credentials = ServiceAccountCredentials.from_json_keyfile_name(
    key_file_location, scopes=scope)

  http = credentials.authorize(httplib2.Http())

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

  return service

def uploadCSV(service):
  try:
    media = MediaFileUpload(CSV_IMPORT_FILE_LOCATION,
                          mimetype='application/octet-stream',
                          resumable=False)
    daily_upload = service.management().uploads().uploadData(
        accountId=ACCOUNT_ID,
        webPropertyId=WEB_PROPERTY_ID,
        customDataSourceId=CUSTOM_DATA_SOURCE_ID,
        media_body=media).execute()

  except TypeError, error:
    # Handle errors in constructing a query.
    print 'There was an error in constructing your query : %s' % error


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

  # Authenticate and construct service.
  service = get_service('analytics', 'v4', scope, CREDENTIALS_KEY_FILE_LOCATION)

  # Upload CSV Data
  uploadCSV(service)


if __name__ == '__main__':
  main()

Это ошибка, которую я получал все время:

AttributeError: 'Resource' object has no attribute 'management'

Какие-либо предложения??

Я предполагаю, что это потому, что у меня нет этих методов (management (). Uploads ()), но это то, что говорится в примере из документации.

1
0
757
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Текущий API аналитики v4 включает только отчетную часть API. Чтобы получить доступ к конечной точке управления, вы должны использовать v3. Попробуйте переписать свой код, используя версию API v3.

Для начала измените эту строку:

service = get_service('analytics', 'v3', scope, CREDENTIALS_KEY_FILE_LOCATION)

Но это может потребовать большего переписывания, чем это.

Моя вина, я вчера потратил время, чтобы разобраться в этом ..... в конце концов, это было решение, даже такое очевидное ... Но спасибо)

user10208908 11.08.2018 10:45

Другие вопросы по теме