跳转到主要内容

AWeber API的Python客户端库。

项目描述

AWeber API Python库允许您快速将AWeber API集成到您的Python应用程序中。此库需要python-oauth2来处理身份验证。

https://secure.travis-ci.org/aweber/AWeber-API-Python-Library.png?branch=master Latest Version License

安装

可以通过检出源代码来安装此库

$ sudo python setup.py install

或者使用easy_install安装

$ easy_install aweber_api

或者pip

$ pip install aweber_api

兼容性

客户端库已经测试过,与以下Python版本兼容

  • 2.6

  • 2.7

测试

将客户端库放入virtualenv中,然后通过运行以下命令执行测试套件

$ python setup.py nosetests

此外,项目可以使用tox在多个Python版本上运行。tox包可在以下pypi处获得

https://pypi.python.org/pypi/tox

有关如何使用和配置tox的说明,请参阅此处

http://tox.readthedocs.org/en/latest/#

目前,运行tox需要同时安装python 2.6和python 2.7。

可以安装额外的解释器,并且必须修改tox.ini文件以包括新添加的解释器。安装解释器后,可以通过以下方式运行测试

$ tox

用法

要连接AWeber API Python库,您只需在应用程序中包含主类AWeberAPI,然后使用应用程序的客户端密钥和秘密创建其实例。

from aweber_api import AWeberAPI
aweber = AWeberAPI(consumer_key, consumer_secret)
account = aweber.get_account(access_token, token_secret)

for list in account.lists:
    print list.name

错误处理

有时会发生错误,您的应用程序应该妥善处理它们。每当发生API错误时,都会抛出一个带有详细错误信息和文档链接的AWeberAPIException,以解释问题所在。

您应该在API调用周围使用try/except块。

常见错误
  • 资源未找到(404错误)

  • 您的应用程序已被速率限制(403错误)

  • 无效请求(400错误)

  • API临时不可用(503错误)

请参阅https://labs.aweber.com/docs/troubleshooting获取完整列表

from aweber_api import AWeberAPI, APIException
aweber = AWeberAPI(consumer_key, consumer_secret)
account = aweber.get_account(access_token, token_secret)


try:
    invalid_resource = account.load_from_url('/idontexist')
except APIException, exc:
    print '404! {0}'.format(exc)

try:
    print len(account.lists)
except APIException, exc:
    print 'hmm, something unexpected happened!: {0}'.format(exc)

获取请求令牌/访问令牌

您还可以使用AWeberAPI对象来处理获取请求令牌

from aweber_api import AWeberAPI
aweber = AWeberAPI(consumer_key, consumer_secret)
request_token, request_token_secret = aweber.get_request_token(callback_url)
print aweber.authorize_url

以及访问令牌

from aweber_api import AWeberAPI
aweber = AWeberAPI(consumer_key, consumer_secret)
aweber.user.verifier = verifier
aweber.user.request_token = request_token
aweber.user.token_secret = request_token_secret
access_token, access_token_secret = aweber.get_access_token()

完整的Pylons示例

这是一个简单的Pylons示例,它使用AWeber API Python库获取请求令牌,进行授权,然后打印该用户列表中网页表单的一些基本统计数据

from pylons import session, request, tmpl_context as c
from pylons.controllers.util import redirect

from awebertest.lib.base import BaseController, render

from aweber_api import AWeberAPI

url = 'http://localhost:5000'
consumer_key = "vjckgsr5y4gfOa3PWnf"
consumer_secret = "u3sQ7vGGJBfds4q5dfgsTESi685c5x2wm6gZuIj"
class DemoController(BaseController):

    def __before__(self):
        self.aweber = AWeberAPI(consumer_key, consumer_secret)

    def index(self):
        token, secret = self.aweber.get_request_token(url+'/demo/get_access')
        session['request_token_secret'] = secret
        session.save()
        redirect(self.aweber.authorize_url)

    def get_access(self):
        self.aweber.user.request_token = request.params['oauth_token']
        self.aweber.user.token_secret = session['request_token_secret']
        self.aweber.user.verifier = request.params['oauth_verifier']
        session['token'], session['secret'] = self.aweber.get_access_token()
        session.save()
        redirect(url+'/demo/show')

    def show(self):
        c.account = self.aweber.get_account(session['token'], session['secret'])
        return render('data.mako')

data.mako

<!DOCTYPE html>
<html lang="en">
    <body>
        <h1>Web Forms</h1>
        % for list in c.account.lists:
        <b>List Id:</b> ${list.id}, name: ${list.name}<br />
        <b>Currently has:</b> ${len(list.web_forms)} web forms
        <ul>
        % for form in list.web_forms:
            <li>Form Id: ${form.id}, name: ${form.name}</li>
        % endfor
        </ul>
        % endfor
    </body>
</html>

项目详情


下载文件

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

源代码发行版

aweber_api-1.4.0.tar.gz (10.8 kB 查看哈希值)

上传时间 源代码

支持者