AWeber API的Python客户端库。
项目描述
AWeber API Python库允许您快速将AWeber API集成到您的Python应用程序中。此库需要python-oauth2来处理身份验证。
安装
可以通过检出源代码来安装此库
$ 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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6aceb4b86a0d54d89d7af2f40439ee14e5c2fa09a5b6cdc002498391c7489467 |
|
MD5 | b6c04e5a07592d5d02114ff8a014a849 |
|
BLAKE2b-256 | b6655238865e54336a4e5947b13ee534fa3a6f80d7cfbef2ad4c04a0468c0c39 |