Question

Je suis tout nouveau chez Python et j'essaie d'écrire une extension pour une application qui importe des informations GA et les analyse dans MySQL. Il existe une quantité d'informations infimes sur le sujet. Les Google Docs ne semblent avoir que des exemples en JS et Java ...

... je suis arrivé au point où mon utilisateur peut s'authentifier auprès de GA à l'aide de SubAuth. Ce code est ici:

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)

La prochaine étape consiste donc à obtenir les données. J'ai trouvé cette bibliothèque: (attention, l'interface utilisateur est offensante) http://gdata-python-client.googlecode.com/svn/trunk/pydocs/gdata.analytics.html Cependant, j'ai trouvé difficile de naviguer. Il semble que je devrais être gdata.analytics.AnalyticsDataEntry.getDataEntry (), mais je ne suis pas sûr de ce que cela me demande de le transmettre.

J'aimerais une poussée dans la bonne direction. J'ai l'impression d'avoir épuisé Google à la recherche d'un exemple concret.

Merci !!

EDIT: Je suis allé plus loin, mais mon problème n’est toujours pas résolu. La méthode ci-dessous renvoie des données (je crois) .... l'erreur que j'obtiens est la suivante: "L'objet 'str' n'a pas d'attribut '_BecomeChildElement' &"; Je crois que je retourne un flux? Cependant, je ne sais pas comment percer. Y at-il un moyen pour moi d'inspecter cet objet?

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)
Était-ce utile?

La solution

Peut-être que ce message peut vous aider. On dirait qu’il n’existe pas encore de liaisons spécifiques à Google Analytics, vous travaillez donc avec le gdata générique.

Autres conseils

J'utilise GA depuis un peu plus d'un an maintenant et depuis avril 2009 environ, j'ai utilisé des liaisons Python fournies dans un package appelé python-googleanalytics de Clint Ecker et al. Jusqu'à présent, cela fonctionne assez bien.

Voici où vous le procurer: http://github.com/clintecker/python-googleanalytics.

Installez-le normalement.

Pour l'utiliser: tout d'abord, pour que vous n'ayez pas à saisir manuellement vos informations de connexion chaque fois que vous accédez à l'API, placez-les dans un fichier de configuration comme suit:

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

Nommez ce fichier '.pythongoogleanalytics' et mettez-le dans votre répertoire personnel.

Et à partir d'une invite interactive, tapez:

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

La méthode "get_account" renverra une liste python (liée à la variable "compte" dans l'exemple ci-dessus), qui contient vos données.

Vous avez besoin de 3 fichiers dans l'application. client_secrets.json, analytics.dat et google_auth.py.

Créer un module Query.py dans l'application:

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

Exemple models.py: #a la fonction suivante

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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top