Frage

Ich bin ganz neu in Python und ich versuche, eine Erweiterung zu einer App zu schreiben, die GA Informationen importiert und analysiert sie in MySQL. Es gibt eine shamfully spärliche Menge an Infomationen zum Thema. Die Google Docs scheint nur Beispiele in JS und Java zu haben ...

... Ich habe an dem Punkt, wo mein Benutzer in GA mit SubAuth authentifizieren kann. Dieser Code ist hier:

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)

Also, Schritt als nächstes auf die Daten bekommen. Ich habe diese Bibliothek gefunden: (Vorsicht, UI ist offensiv) http://gdata-python-client.googlecode.com/svn/trunk/pydocs/gdata.analytics.html Allerdings habe ich fand es schwierig zu navigieren. Es scheint, wie sollte ich gdata.analytics.AnalyticsDataEntry.getDataEntry (), aber ich bin mir nicht sicher, was es mich bittet, es zu übergeben.

Ich möchte einen Schubs in die richtige Richtung lieben. Ich glaube, ich habe erschöpft Google für ein funktionierendes Beispiel suchen.

Danke !!

EDIT: Ich habe weiter gekommen, aber mein Problem ist noch nicht gelöst. Die unten Methode gibt Daten (glaube ich) .... die Fehler, die ich bekommen ist: „‚str‘Objekt kein Attribut‚_BecomeChildElement‘“ Ich glaube, ich bin ein Feed Rückkehr? Allerdings weiß ich nicht, wie in sie zu bohren. Gibt es eine Möglichkeit für mich, um dieses Objekt zu inspizieren?

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)
War es hilfreich?

Lösung

Vielleicht diesen Beitrag helfen können. Scheint, als ob es keine spezifische Bindungen noch Analytics, so dass Sie mit dem allgemeinen gdata arbeiten.

Andere Tipps

Ich habe jetzt mehr als ein Jahr für ein wenig GA benutzen und seit etwa April 2009 habe ich Python-Bindungen in einem Paket namens Python-Google von Clint Ecker et al geliefert verwendet. Bisher funktioniert es ganz gut.

Hier ist, wo es zu bekommen: http://github.com/clintecker/python-googleanalytics.

Installieren Sie es auf die übliche Weise.

Um es zu verwenden: Erstens, so dass Sie nicht manuell in Ihren Zugangsdaten jedes Mal, wenn Sie auf die API zugreifen passieren müssen, setzen Sie sie in einer Konfigurationsdatei wie folgt:

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

Name dieser Datei‘.pythongoogleanalytics' und legen Sie sie in Ihrem Home-Verzeichnis.

Und von einer interaktiven Eingabeaufforderung ein:

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'])

Die 'get_account' Methode wird einen Python Liste zurück (in obigem Fall, gebunden an die Variable 'Konto'), die Ihre Daten enthält.

Sie müssen 3 Dateien innerhalb der App. client_secrets.json, analytics.dat und google_auth.py.

Erstellen Sie ein Modul Query.py innerhalb der App:

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

Beispiel models.py: #has die folgende Funktion:

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top