新浪微博 OAuth2.0 授权以及 API 调用
准备工作
1、配置Python开发环境
当然要是你有一台Linux服务器是坠吼滴!
2、在微博开放平台申请开发资格并创建一个应用
完成完善身份资料,身份认证,创建应用等步骤。
3、应用信息设置
进入 "微博开放平台 - 我的应用 - '应用' - 应用信息":
在基本信息中取得App Key和App Secret;
在高级信息中设置授权回调页。授权回调页即用户同意授权后跳转的页面url,https://www.baidu.com即可;
在测试信息中关联需要完成授权的帐号。
4、安装sinaweibopy
sinaweibopy是新浪微博的Python SDK。我们可以通过pip包管理工具安装sinaweibopy,pip则需要通过第三方软件源EPEL获得。
yum -y install epel-release yum -y install python-pip yum clean all
pip install sinaweibopy
OAuth2.0授权
APP_KEY、APP_SECRET和CALLBACK_URL的设定与应用信息中的保持一致:
1 from weibo import APIClient 2 3 APP_KEY = 'XXXXX' 4 APP_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' 5 CALLBACK_URL = 'https://www.baidu.com'
6
7 client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
获取授权页url并打印:
1 url = client.get_authorize_url() 2 print "Auth_Url:" + url
我们复制授权页url在浏览器打开,同意授权后跳转至百度,观察url发现包含了code参数。请求token需要该code。
输入code后获取access_token和expires_in(token过期的UNIX时间):
1 code = raw_input("code=") 2 3 r = client.request_access_token(code) 4 5 access_token = r.access_token 6 expires_in = r.expires_in
设定token,完成授权:
1 client.set_access_token(access_token, expires_in)
API调用
1、发送微博
通过API说明文档得知,接口为statuses/update,方法为post(),OAuth授权时必选参数是status。
1 r = client.statuses.update.post(status=u'test') # Python 2.7.5
2、获取时间线并打印
接口为statuses/user_timeline,方法为get(),OAuth授权时无必选参数。
1 print r = client.statuses.user_timeline.get()
3、更多API和详细说明见参考资料4
参考资料
1、sinaweibopy
http://github.liaoxuefeng.com/sinaweibopy/
2、OAuth2 HOWTO · michaelliao/sinaweibopy Wiki · GitHub
https://github.com/michaelliao/sinaweibopy/wiki/OAuth2-HOWTO
3、授权机制说明 - 微博API
http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6
4、API - 微博API
http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI