2016-12-07 1 views
0

Я пытаюсь загрузить некоторые пользовательские данные в GA с помощью Python. Это первое, что я делаю, поэтому я не уверен ни о чем.«аналитика» не определена ошибка с загрузкой сценария данных с API управления GA

Я построил следующий сценарий, основанный на примере из doc. При запуске его у меня есть следующее сообщение об ошибке:

File "import.py", line 50, in <module> 
    daily_upload = analytics.management().uploads().uploadData(
NameError: name 'analytics' is not defined 

Вот мой код:

import argparse 

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

import httplib2 
import urllib2 
from oauth2client import client 
from oauth2client import file 
from oauth2client import tools 



def get_service(api_name, api_version, scope, key_file_location, 
       service_account_email): 
    """Get a service that communicates to a Google API. 

    Args: 
    api_name: The name of the api to connect to. 
    api_version: The api version to connect to. 
    scope: A list auth scopes to authorize for the application. 
    key_file_location: The path to a valid service account p12 key file. 
    service_account_email: The service account email address. 

    Returns: 
    A service that is connected to the specified API. 
    """ 

    credentials = ServiceAccountCredentials.from_p12_keyfile(
    service_account_email, key_file_location, scopes=scope) 

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

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

    return service 

from apiclient.http import MediaFileUpload 
try: 
    media = MediaFileUpload('mycsv.csv', 
          mimetype='application/octet-stream', 
          resumable=False) 
    daily_upload = analytics.management().uploads().uploadData(
     accountId='XXXXXX', 
     webPropertyId='XXXXXXX', 
     customDataSourceId='XXXXXXXXXX', 
     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'] 

    # Use the developer console and replace the values with your 
    # service account email and relative location of your key file. 
    service_account_email = '[email protected]' 
    key_file_location = 'XXXXXXXXXX.p12' 

    # Authenticate and construct service. 
    service = get_service('analytics', 'v3', scope, key_file_location, 
    service_account_email) 
    profile = get_first_profile_id(service) 
    print_results(get_results(service, profile)) 


if __name__ == '__main__': 
    main() 

Если мой код не ясно, или показать некоторые другие очевидные ошибки, отличные от того, что я вопросительно пожалуйста быть всеобъемлющим Я учусь!

Edit: Я проверил в моем диспетчере API аналитики API позволяют хорошо

+0

В этом документе есть «Этот код предполагает, что у вас есть уполномоченный объект службы Analytics». – ettanany

+0

Я сделал это, следуя документу https://developers.google.com/analytics/devguides/config/mgmt/v3/quickstart/service-py, и эта часть работает. Наверное, я ничего не понимаю, но я не знаю, что. –

ответ

0

Ok. Это простая проблема выравнивания блоков. Мне необходимо было выровнять эту деталь:

from apiclient.http import MediaFileUpload 
try: 
    media = MediaFileUpload('mycsv.csv', 
          mimetype='application/octet-stream', 
          resumable=False) 
    daily_upload = analytics.management().uploads().uploadData(
     accountId='XXXXXX', 
     webPropertyId='XXXXXXX', 
     customDataSourceId='XXXXXXXXXX', 
     media_body=media).execute() 

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

с первой частью!

Смежные вопросы