跳转到主要内容

本软件包包含与Google Analytics通信的有用工具。

项目描述

develop master

本软件包包含与Google Analytics通信的有用工具。

内容

主要功能

  1. 访问Google API的底层API;

  2. 存储Google连接的CMF门户工具;

  3. 使用AuthSub令牌在不接触Google凭据的情况下验证Google Analytics的逻辑;

  4. 使用Google Analytics数据导出API创建自定义Google Analytics报告的逻辑。

以这种方式创建的Google Analytics报告可以通过组件提供。目前有一个示例在skins文件夹下。

Google API (eea.google.api)

一个提供低级Google连接和通用连接错误GoogleClientError的Python包。要使用此连接,您需要一个AuthBase身份验证令牌。您可以通过调用Google来获取一个:

https://www.google.com/accounts/AuthSubRequest?scope=https://www.google.com/analytics/feeds/&session=1&next=http://yourdomain.com/do_something_with_token

在您登录到Google Analytics账户后,您将被要求授予yourdomain.com访问分析统计数据的权限。如果您这样做,Google将重定向您的浏览器到提供的next链接,并添加一个请求参数 token=<one-session-authsub-token>,在我们的例子中

http://yourdomain.com/do_something_with_token?token=ADFAFDDKLJH14234__ASDD

由于此令牌明确提供给您,它只能使用一次来查询Google API,因此您需要将其交换为多会话令牌。但是这次您不能从浏览器中进行交换。因此,这里就是eea.google.api的用武之地。

>>> from eea.google.api import Connection
>>> google = Connection(token='ADFAFDDKLJH14234__ASDD')
>>> new_token = google.token2session()

如果您提供了一个无效的令牌,它将默默地失败并返回一个None对象,否则它将返回一个多会话令牌。现在您已永久连接到Google :)

使用此连接,您可以检查其状态

>>> google.status
(200, 'OK')

或进行调用

>>> response = google(scope, data, method='GET')
  • scope - 您想要访问的Google服务;

  • data - 查询参数

  • method - 请求方法:GET或POST

如果某些事情处理不当,这将引发GoogleClientError,否则它将返回一个Google数据馈送响应

>>> response.read()
<?xml ...

您还可以通过调用.request方法进行安全请求。如果某些事情处理不当,它将返回一个None对象。

>>> google.request(scope, data, method='GET')

Google工具 (eea.google.tool)

这是一个可以通过CMF方法getToolByName检索的CMF门户工具:这是一个简单的容器,用于Google连接。它提供了一个基本的浏览器界面来添加和删除连接。

>>> from Products.CMFCore.utils import getToolByName
>>> tool = getToolByName(portal, 'portal_google')

Google Analytics (eea.google.analytics)

此包提供了用于注册Google Analytics的浏览器界面,并定义了两个存储模型:Analytics和AnalyticsReport。它还提供了一个实用工具,可以轻松访问低级api.Connection,并提供了另一个用于解析Google响应XML的实用工具。

分析

这将存储AuthSub令牌,也是分析报告的容器。它提供了一个基本的浏览器界面来从Google获取令牌和管理报告。

分析报告

一个基于维度、度量、开始日期、结束日期、筛选器和排序顺序的Google Analytics自定义报告。它实际上是Google Analytics API的查询对象。

>>> from zope.component import getMultiAdapter
>>> report = tool.analytics.report
>>> xml = getMultiAdapter((report, request), 'index.xml')

现在您有一个基于定义的筛选器的自定义XML报告。

连接实用程序

通过使用zope组件轻松访问低级eea.google.api.Connection

>>> from zope.component import getUtility
>>> from eea.google.analytics.interfaces import IGoogleAnalyticsConnection
>>> utility = getUtility(IGoogleAnalyticsConnection)
>>> conn = utility(token='ABCDEFGH__FAH')

XML解析器实用程序

解析Google响应XML

>>> from zope.component import getUtility
>>> from eea.google.analytics.interfaces import IXMLParser
>>> parse = getUtility(IXMLParser)
>>> table = parse(xml)

这里的表是一个(维度、度量)Python生成器

>>> dimensions, metrics = table.next()
>>> dimensions
{'ga:pagePath': '/some/doc/path', 'ga:browser': 'Firefox'}
>>> metrics
{'ga:pageviews': u'34235', 'ga:timeOnPage': '2433.0'}

依赖关系

  1. python2.4+

  2. Plone 2.5.x或Plone 3.x。(如果只使用eea.google.api包,则为可选。)

源代码

最新源代码(Plone 4兼容)

https://github.com/eea/eea.google

Plone 2和3兼容

https://github.com/eea/eea.google/tree/plone25

资助

EEA - 欧洲环境署(欧盟)

变更日志

5.8 - (2019-01-28)

  • Jenkins:添加sonarqube步骤 [avoinea refs #101552]

  • 更改:更新指向eea.europa.eu的URL为https:// [alecghica refs #95849]

5.7 - (2017-12-12)

  • 更改:将eeacms/zptlint替换为eeacms/plone-test:4 zptlint [avoinea refs #90415]

5.6 - (2017-11-07)

  • 更改:删除Sphinx生成的文档 [petchesi-iulian refs #88212]

5.5 - (2017-05-22)

  • 更改:修复PyLint警告和错误 [valipod refs #84949]

5.4 - (2017-05-15)

  • 更改:修复PyLint警告和错误 [eduard-fironda refs #84949]

5.3 - (2017-04-24)

  • 更改:更新包信息 [eduard-fironda]

5.2 - (2016-05-19)

  • 错误修复:修复pylint警告 [ichim-david refs #71940]

5.1 - (2015-10-05)

  • 错误修复:将套接字超时设置为防止在xmlrpc调用中使用eventlet时挂起连接 [lucas 引用 #29063]

5.0 - (2015-08-18)

  • 变更:自动包含plone上下文中的zcml,以便使此包在没有在buildout zcml指令中添加它的情况下工作。[avoinea]

4.9 - (2015-03-17)

  • 变更:jenkins构建安装脚本中切换到curl [olimpiurob 引用 #22402]

  • 变更:将jenkins构建安装脚本的fetch URL更改为EEA CPB主存储库中的安装脚本 [olimpiurob 引用 #22402]

4.8 - (2014-01-22)

  • 特性:添加Sphinx生成的文档,格式为页面模板 [batradav 引用 #9502]

  • 错误修复:从README.rst中删除了错误添加的引用块 [ichim-david 引用 #18064]

4.7 - (2013-10-04)

  • 变更:更新了eeagoogle的zope导入,以满足Plone 4.1的最小要求 [ichimdav 引用 #15651]

4.6 - (2013-06-17)

  • 变更:更新了网站设置的链接 [ghicale]

4.5 - (2013-02-04)

  • 错误修复:修复了与2.4 API兼容的问题 [batradav 引用 #9551]

4.4 - (2012-07-13)

  • 错误修复:修复了.pt文件中缺失的i18n标签 [prospchr 引用 #5160]

4.3 - (2012-06-12)

  • 错误修复:修复了HISTORY.txt文件的标记 [ciobabog 引用 #5231]

4.2 - (2012-02-06)

  • 无更改

4.0 - (2011-11-07)

  • 清理:pylint和pyflakes警告 [ichimdav #4140, #4141]

  • 特性:添加了升级步骤 [voineali #4392]

  • 特性:Plone 4.x兼容版本 [ghicaale #4212]

1.2 (2010-02-24)

  • 错误修复:修复了恶臭的egg [ghicale]

1.1 (2010-02-24)

  • 错误修复:修复了编辑模式中的布局 [voineali #2685]

1.0 (2009-11-09)

  • 初始版本 [voineali]

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

eea.google-5.8.zip (54.7 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面