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


License
Apache-2.0
Install
pip install chinaapi==0.8.0

Documentation

ChinaAPI

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

https://travis-ci.org/smallcode/ChinaAPI.png https://badge.fury.io/py/chinaapi.png

支持

  • 新浪微博
  • 腾讯微博
  • 淘宝
  • 人人
  • 豆瓣(OAuth2)

安装

可以到项目所在地址下载:https://github.com/smallcode/ChinaAPI

或者直接用pip安装:

$ pip install chinaapi

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


新浪微博API:

Client使用方法:

from chinaapi.sina.weibo.open import Client


client = Client()
client.set_access_token('access_token')  # 填上取得的token(可通过OAuth2取得)

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

# 发布带图片的微博,对应的接口是:statuses/upload
with open('pic.jpg', 'rb') as pic:
    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使用方法:

from chinaapi.sina.weibo.open import OAuth2, 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:

使用示例:

from chinaapi.taobao.open import Client, 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:

使用方法:

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


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

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

# 发布一条带图片的微博,对应的接口是:t/add_pic
with open('pic.jpg', 'rb') as pic:
    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.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:

使用方法:

from chinaapi.renren.open import Client


client = Client()
client.set_access_token('access_token')  # 填上取得的access_token

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

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

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

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

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


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