使用Django访问谷歌分析数据

时间:2017-01-06 13:44:41

标签: django oauth-2.0 google-analytics-api oauth2client

我正在尝试构建一个超级简单的信息中心,向用户展示格式正确的Google Analytics数据。

我使用oAuth2Client和Django 1.10.4以及Python 3.5。

我已经按照文档中的示例进行操作,现在我有一个非常简单的应用程序,登录页面会要求您登录,您点击链接进行授权,Google页面加载并询问您是否需要分享您的GA数据,如果您接受,您将重定向到您只有在您登录时才能看到的页面。到目前为止一切都很好。

但是,我无法实际获取用户数据,例如,获取用户帐户中的属性列表的最佳方式是什么,甚至更好的页面查看次数a财产在上周?

到目前为止,这是我的代码:

/pools/models.py

from django import http
from oauth2client.contrib.django_util import decorators
from django.views.generic import ListView
# from polls.models import GoogleAnalytic
from django.http import HttpResponse
# Google Analytics
from apiclient.discovery import build

# def index(request):
#     return http.HttpResponse("Hello and Welcome! </br> </br> Click <a href='/profile_enabled'> here</a> to login")

@decorators.oauth_required
def get_profile_required(request):
    resp, content = request.oauth.http.request(
        'https://www.googleapis.com/plus/v1/people/me')
    return http.HttpResponse(content)

@decorators.oauth_enabled
def get_profile_optional(request):
    if request.oauth.has_credentials():
        # this could be passed into a view
        # request.oauth.http is also initialized
        return http.HttpResponse('You are signed in.</br> </br>'+'User email: {}'.format(
            request.oauth.credentials.id_token['email']) + "</br></br>Click <a href='/ga'> here </a> to view your metrics")
    else:
        return http.HttpResponse(
            'Hello And Welcome!</br></br>'
            'You need to sign in to view your data. </br></br>' +
            'Here is an OAuth Authorize link:<a href="{}">Authorize</a>'
            .format(request.oauth.get_authorize_redirect()))

########## MY CODE! ###############

@decorators.oauth_required
def google_analytics(object):
    return HttpResponse('These are your results for last week:')

urls.py

from django.conf import urls
from polls import views
import oauth2client.contrib.django_util.site as django_util_site


urlpatterns = [
    urls.url(r'^$', views.get_profile_optional),
    urls.url(r'^profile_required$', views.get_profile_required),
    # urls.url(r'^profile_enabled$', views.get_profile_optional),
    urls.url(r'^oauth2/', urls.include(django_util_site.urls)),
    urls.url(r'^ga/$', views.google_analytics)
]

settings.py

  [...]


    GOOGLE_OAUTH2_CLIENT_ID = 'XXX.apps.googleusercontent.com'

    GOOGLE_OAUTH2_CLIENT_SECRET = 'XXX'

    GOOGLE_OAUTH2_SCOPES = ('email','https://www.googleapis.com/auth/analytics')

所以我的问题是我真的不明白Django在哪里保存令牌以访问该特定用户的数据,我知道它有效,因为它正确打印出电子邮件地址等,但我不能弄清楚我应该添加到def google_analytics(object):以实际获取特定的Google API方法。

如果有人有这方面的经验,我真的很感激一些帮助!谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想要获取Google Analytics配置详细信息,例如您可以使用Google Analytics Management API V3

执行帐户,网络媒体资源,个人资料,过滤器,目标等

如果您想从Google Analytics(分析)视图(也称为个人资料)中获取某些dimension and metrics的数据,您可以使用Core Reporting API V3Analytics Reporting API V4来执行此操作。

我想你会在各自的指南中找到python api的例子。