Вопрос

Я новичок в Python и пытаюсь написать расширение для приложения, которое импортирует информацию GA и анализирует ее в MySQL. По этой теме существует крайне скудное количество информации. Документы Google, кажется, имеют примеры только на JS и Java ...

... я дошел до того, что мой пользователь может пройти аутентификацию в GA с использованием SubAuth. Этот код здесь:

import gdata.service
import gdata.analytics  
from django import http
from django import shortcuts
from django.shortcuts import render_to_response

def authorize(request):
    next = 'http://localhost:8000/authconfirm'
    scope = 'https://www.google.com/analytics/feeds'
    secure = False  # set secure=True to request secure AuthSub tokens
    session = False
    auth_sub_url = gdata.service.GenerateAuthSubRequestUrl(next, scope, secure=secure, session=session)
    return http.HttpResponseRedirect(auth_sub_url)

Итак, следующий шаг - получить данные. Я обнаружил эту библиотеку: (будьте осторожны, пользовательский интерфейс оскорбительный) > http://gdata-python-client.googlecode.com/svn/trunk/pydocs/gdata.analytics.html Однако мне было трудно ориентироваться. Кажется, что я должен быть gdata.analytics.AnalyticsDataEntry.getDataEntry (), но я не уверен, что он просит меня передать его.

Я хотел бы получить толчок в правильном направлении. Я чувствую, что исчерпал Google в поисках рабочего примера.

Спасибо !!

РЕДАКТИРОВАТЬ: я получил дальше, но моя проблема все еще не решена. Приведенный ниже метод возвращает данные (я полагаю) .... я получаю ошибку: " объект 'str' не имеет атрибута '_BecomeChildElement' " Я верю, что возвращаю канал? Тем не менее, я не знаю, как это сделать. Есть ли способ для меня осмотреть этот объект?

def auth_confirm(request):
    gdata_service = gdata.service.GDataService('iSample_acctSample_v1.0')
    feedUri='https://www.google.com/analytics/feeds/accounts/default?max-results=50'
    # request feed
    feed = gdata.analytics.AnalyticsDataFeed(feedUri)
    print str(feed)
Это было полезно?

Решение

Возможно, этот пост может помочь. Похоже, что привязок к Google Analytics пока нет, поэтому вы работаете с общими gdata.

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

Я использую GA чуть больше года, и примерно с апреля 2009 года я использовал привязки python, поставляемые в пакете python-googleanalytics от Clint Ecker et al. Пока это работает довольно хорошо.

Вот где это можно найти: http://github.com/clintecker/python-googleanalytics.

Установите его обычным способом.

Чтобы использовать его: во-первых, чтобы вам не приходилось вручную вводить учетные данные для входа при каждом доступе к API, поместите их в файл конфигурации следующим образом:

[Credentials]
google_account_email = youraccount@gmail.com
google_account_password = yourpassword

Назовите этот файл «.pythongoogleanalytics» и поместите его в свой домашний каталог.

И из интерактивного приглашения введите:

from googleanalytics import Connection
import datetime
connection = Connection()     # pass in id & pw as strings **if** not in config file
account = connection.get_account(<*your GA profile ID goes here*>)
start_date = datetime.date(2009, 12, 01)
end_data = datetime.date(2009, 12, 13)
# account object does the work, specify what data you want w/ 
# 'metrics' & 'dimensions'; see 'USAGE.md' file for examples
account.get_data(start_date=start_date, end_date=end_date, metrics=['visits'])

Метод 'get_account' вернет питон список (в приведенном выше примере привязанный к переменной 'account'), который содержит ваши данные.

Вам нужно 3 файла в приложении. client_secrets.json, analytics.dat и google_auth.py.

Создайте модуль Query.py в приложении:

class Query(object):
    def __init__(self, startdate, enddate, filter, metrics):
        self.startdate = startdate.strftime('%Y-%m-%d')
        self.enddate = enddate.strftime('%Y-%m-%d')
        self.filter = "ga:medium=" + filter  
        self.metrics = metrics

Пример models.py: # имеет следующую функцию

import google_auth
service = googleauth.initialize_service()
def total_visit(self):
    object = AnalyticsData.objects.get(utm_source=self.utm_source)
    trial = Query(object.date.startdate, object.date.enddate, object.utm_source, ga:sessions")
    result = service.data().ga().get(ids = 'ga:<your-profile-id>', start_date =   trial.startdate, end_date = trial.enddate, filters= trial.filter, metrics = trial.metrics).execute()
    total_visit = result.get('rows')
    <yr save command, ColumnName.object.create(data=total_visit) goes here>
scroll top