skip to navigation
skip to content

Not Logged In

chinaapi 0.6.1

Python SDK For China API: Sina Weibo, QQ Weibo, Taobao, Renren, Douban

Latest Version: 0.8.9

ChinaAPI
=========================

.. image:: https://travis-ci.org/smallcode/ChinaAPI.png
    :target: https://travis-ci.org/smallcode/ChinaAPI

.. image:: https://badge.fury.io/py/chinaapi.png
    :target: http://badge.fury.io/py/chinaapi


ChinaAPI是一个API库,使用Python编写。

目前国内的几大开放平台,有新浪微博,腾讯微博,淘宝、人人、豆瓣等。
针对这几个平台,用Python语言编写的API库都比较独立,各具特色。
但仔细分析,不难发现这些库存在大量可通用的模块,并可抽象出统一的调用接口。
ChinaAPI就是为此目的而存在。

安装
----

安装 ChinaAPI,最简单的方法:

.. code-block:: bash

    $ pip install chinaapi

注:ChinaAPI使用: `Requests`_  (Http请求模块)

----

新浪微博API:
------------

Client使用方法:

.. code-block:: python

        from chinaapi.sina.weibo.open import Client
        from chinaapi.utils.open import App, Token


        # 设置ApiClient
        app = App('app_key', 'app_secret')  # 填上自己的app_key,app_secret
        token = Token('access_token')  # 填上取得的token(可通过OAuth2取得)
        client = Client(app)
        client.set_token(token)

        # 获取用户信息,对应的接口是:users/show
        r = client.users.show(uid=1904178193)
        print r.name  # 显示用户名

        # 发布带图片的微博,对应的接口是:statuses/upload
        pic = open('pic.jpg', 'rb')
        r = client.statuses.upload(status=u'发布的内容', pic=pic)
        print r.id  # 显示发布成功的微博的编号(即mid):1234567890123456


Client调用规则:**斜杠(/)映射为点(.)**

====================================== =========================================
            新浪微博API                               调  用
====================================== =========================================
  users/show                           client.users.show()
  statuses/upload                      client.statuses.upload()
  ...                                  ...
====================================== =========================================

更多API请参见:`新浪微博API文档`_

OAuth2使用方法:

.. code-block:: python

        from chinaapi.sina.weibo.open import OAuth2
        from chinaapi.utils.open import App


        # 设置App,填上自己的app_key,app_secret;redirect_uri可不填
        app = App('app_key', 'app_secret', 'redirect_uri')

        # 获取授权链接
        oauth2 = OAuth2(app)
        url = oauth2.authorize()  # 如果app中未设置redirect_uri,则此处必须传入
        print url # 显示授权链接(该url用于提供给用户进行登录授权,授权成功后会回调redirect_uri?code=****)

        # 获取Token
        token = oauth2.access_token(code='code')  #  code取自回调地址后所附的code参数
        print token.access_token  # 显示访问令牌
        print token.expires_in  # 显示令牌剩余授权时间的秒数
        print token.expired_at  # 显示令牌到期日期,为timestamp格式

        # 取消授权
        r = oauth2.revoke('access_token')
        print r # 显示是否成功取消

OAuth2调用规则:**斜杠(/)映射为点(.)**

====================================== =========================================
            新浪微博oauth2 API                        调  用
====================================== =========================================
  oauth2/authorize                     oauth2.authorize()
  oauth2/access_token                  oauth2.access_token()
  oauth2/get_token_info                oauth2.get_token_info()
  oauth2/revokeoauth2                  oauth2.revoke()
====================================== =========================================

----

淘宝API:
------------


使用示例:

.. code-block:: python

        from chinaapi.taobao.open import Client
        from chinaapi.utils.open import App


        # client的设置
        app = App('app_key', 'app_secret')  # 填上自己的app_key,app_secret
        client = Client(app)

        # 获取淘宝客店铺列表,对应的接口是:taobao.tbk.shops.get
        # 返回结果r是json中tbk_shops_get_response的值
        # 所有的接口都直接返回response(键名为:接口+_response后缀)的值
        r = client.tbk.shops.get(cid=14, fields='user_id,seller_nick,shop_title,pic_url')
        print len(r.tbk_shops.tbk_shop)  # 显示店铺列表的数量:40


调用规则:**直接映射(可省略前缀taobao.)**

====================================== =========================================
               淘宝API                               调  用
====================================== =========================================
  taobao.itemcats.get                  client.itemcats.get()
                                       或者 client.taobao.itemcats.get()
  taobao.tbk.shops.get                 client.tbk.shops.get()
                                       或者 client.taobao.tbk.shops.get()

====================================== =========================================

更多API请参见:`淘宝API文档`_

----

腾讯微博API:
------------

使用方法:

.. code-block:: python

        from chinaapi.qq.weibo.open import Client
        from chinaapi.utils.open import App, Token


        # client的设置
        app = App('app_key', 'app_secret')  # 填上自己的app_key,app_secret
        token = Token('access_token')       # 填上取得的access_token
        openid = 'openid'                   # 填上取得的openid
        client = Client(app)
        client.set_token(token)
        client.set_openid(openid)

        # 获取当前登录用户的信息,对应的接口是:user/info
        # 返回结果r是json中的data值
        r = client.user.info()
        print r.name  # 显示用户名

        # 发布一条带图片的微博,对应的接口是:t/add_pic
        pic = open('pic.jpg', 'rb')
        r = client.t.add_pic(content=u'发布的内容', pic=pic)
        print r.id  # 显示微博的ID

        # 删除一条微博,对应的接口是:t/del
        r = client.t.delete(id=r.id)  # 请将del替换为delete
        print r.id  # 显示微博的ID

        # 有两种设置clientip的方法:
        # 1.全局设置,在该client所发起的所有调用中有效
        client.set_clientip('220.181.111.85')
        # 2.临时设置,只在此次调用中有效,会覆盖全局设置
        client.t.upload_pic(pic=pic, pic_type=2, clientip='220.181.111.85')


调用规则:**斜杠(/)映射为点(.),del映射为delete(因del是Python保留字,无法作为方法名)**

====================================== =========================================
            腾讯微博API                               调  用
====================================== =========================================
  user/info                            client.user.info()
  t/add_pic                            client.t.add_pic()
  t/del                                client.t.delete()
====================================== =========================================

更多API请参见:`腾讯微博API文档`_

----

人人API:
------------

使用方法:

.. code-block:: python

        from chinaapi.renren.open import Client
        from chinaapi.utils.open import App, Token


        # client的设置
        app = App('app_key', 'app_secret')  # 填上自己的app_key,app_secret
        token = Token('access_token')  # 填上取得的access_token
        client = Client(app)
        client.set_token(token)

        # 获取用户信息,对应的接口是:/v2/user/get
        r = client.user.get(userId=334258249)
        print r.name  # 显示用户名

        # 上传照片至用户相册,对应的接口是:/v2/photo/upload
        file = open('pic.jpg', 'rb')
        r = client.photo.upload(file=file)
        print r.id  # 显示照片的ID


调用规则:**斜杠(/)映射为点(.)**

====================================== =========================================
            人人API                               调  用
====================================== =========================================
  /v2/user/get                         client.user.get()
  /v2/photo/upload                     client.photo.upload()

====================================== =========================================

更多API请参见:`人人API文档`_

----

TODO:
-----------------------------------

- 添加OAuth2说明

感谢以下Python SDK的开发者们的贡献:
-----------------------------------

- 新浪微博:`sinaweibopy`_
- 腾讯微博:`tweibo`_
- 淘宝:`taobaopy`_
- 豆瓣:`douban-client`_

.. _`sinaweibopy`: https://github.com/michaelliao/sinaweibopy
.. _`tweibo`: https://github.com/upbit/tweibo-pysdk
.. _`taobaopy`: https://github.com/sempr/taobaopy
.. _`douban-client`: https://github.com/douban/douban-client
.. _`Requests`: https://github.com/kennethreitz/requests
.. _`新浪微博API文档`: http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI
.. _`淘宝API文档`: http://open.taobao.com/doc/category_list.htm?spm=0.0.0.0.MNfatw&id=102
.. _`腾讯微博API文档`: http://wiki.open.t.qq.com/index.php/API%E6%96%87%E6%A1%A3
.. _`人人API文档`: http://wiki.dev.renren.com/wiki/API2


.. :changelog:

Release History
---------------


0.6.0 (2014-12-14)
++++++++++++++++++
- 调整模块架构,分为Open(开放平台)、Web(Web网页)、Wap(手机网页)三种API


0.5.8 (2014-12-13)
++++++++++++++++++
- 支持新浪微博直接登录(直接使用账户密码登录,跳过获取code和回调环节)
- 添加WeicoAndroidApp和WeicoIphoneApp两个App


0.5.7 (2014-12-12)
++++++++++++++++++
- 移除furl
- 更改部分异常类的名称


0.5.6 (2014-12-11)
++++++++++++++++++
- 添加淘宝ApiOAuth2
- 添加ApiResponseValueError


0.5.1 (2014-12-8)
++++++++++++++++++
- 添加豆瓣ApiOAuth2


0.5.0 (2014-12-8)
++++++++++++++++++
- 添加新浪微博、腾讯微博、人人的ApiOAuth2
- 添加淘宝ApiOAuth


0.4.2 (2014-12-7)
++++++++++++++++++
- 移除packages

0.4.0 (2014-12-7)
++++++++++++++++++

- 添加Token,App等models,并添加测试
- 添加ApiClientBase
- 添加ApiError,并添加测试
- 添加新浪微博、腾讯微博、淘宝、人人的ApiClient
- 添加新浪微博、腾讯微博、淘宝、人人的ApiClient本地单元测试(测试成功,因含有帐号信息不上传到Github)


0.3.1 (2014-12-3)
++++++++++++++++++

- 提取共用模块jsonDict,并增加测试


0.3.0 (2013-11-30)
++++++++++++++++++

- 上传到pipy,可通过: pip install chinaapi 进行安装


0.2.0 (2013-11-30)
++++++++++++++++++

**目前已引入的API Python SDK:**

- 新浪微博:https://github.com/michaelliao/sinaweibopy
- 腾讯微博:https://github.com/upbit/tweibo-pysdk
- 淘宝:https://github.com/sempr/taobaopy
 
File Type Py Version Uploaded on Size
chinaapi-0.6.1.zip (md5) Source 2013-12-14 27KB
  • Downloads (All Versions):
  • 90 downloads in the last day
  • 5551 downloads in the last week
  • 11676 downloads in the last month