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请求模块)
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() |
使用示例:
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文档
使用方法:
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文档
使用方法:
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文档
- 新浪微博:sinaweibopy
- 腾讯微博:tweibo
- 淘宝:taobaopy
- 豆瓣:douban-client