一个蟒蛇客户图书馆

aweber_api的Python项目详细描述


aweber api python库允许您快速启动并运行 将对aweber api的访问集成到python应用程序中。这个 库需要python-oauth2来处理身份验证。

https://secure.travis-ci.org/aweber/AWeber-API-Python-Library.png?branch=masterLatest VersionLicense

安装

可以通过签出源来安装库:

$ 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>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Maven无法识别安装在Ubuntu外壳上的$java_HOME jdk   java如何防止可运行程序在其中一个抛出异常时执行   java Listview在按下项时不触发   如何在WindowsPhone8中使用JavaRESTWebService?   java在spring引导下使用多个dispatcher servlet/web上下文   java为什么在删除容器的绝对大小时不绘制GEF子项?   java在hibernate实体中保留DB约束是好的   JavaSpring选择最高优先级bean   ArrayList<Class>java字符串[]   有向加权边图的Java邻接表实现   字母数字字符串的java Tesseract配置:混合2、Z、6和G   如果输入为空,则带有EditText的java警报对话框将关闭   jsp上的java Struts 2动作响应   java获取IndexOutOfBundException Android   scala AWSJAVASDK:解压缩大小必须小于262144000字节