一个蟒蛇客户图书馆
aweber_api的Python项目详细描述
aweber api python库允许您快速启动并运行 将对aweber api的访问集成到python应用程序中。这个 库需要python-oauth2来处理身份验证。
安装
可以通过签出源来安装库:
$ sudo python setup.py install
或者可以使用“简易安装”进行安装:
$ easy_install aweber_api
或PIP:
$ pip install aweber_api
兼容性
客户机库已测试为与python版本兼容:
- 2.6
- 2.7
测试
将客户端库放入virtualenv中,并通过运行以下命令来执行测试套件:
$ python setup.py nosetests
此外,该项目还可以使用tox对多个版本的python运行。有毒物检测包 从PYPI这里:
https://pypi.python.org/pypi/tox
有关如何使用和配置TOX的说明,请参见:
http://tox.readthedocs.org/en/latest/#
目前,运行tox需要同时安装python 2.6和python2.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 详细的错误消息和文档链接来解释错误。
应该在try/except块中包装对api的任何调用。
- 常见错误:
- 找不到资源(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示例,它使用aweber api python库来获取 一个请求令牌,授权它,然后打印一些关于 该用户列表中的Web表单:
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>