新浪微博的API提供了多种语言的接口,其中python的接口由网友@廖雪峰提供。
附下载地址以及说明:http://michaelliao.github.com/sinaweibopy/
说明文档:https://github.com/michaelliao/sinaweibopy/wiki/OAuth2-HOWTO
也可以看这儿:http://code.google.com/p/sinaweibopy/wiki/OAuth2
代码写的很棒,但里面有一点可能让我等菜鸟不太好理解:
code = your.web.framework.request.get('code')
这里面的your.web.framework没有给出一个实例的框架。因此,我们小白犯愁了,幸好我们有搜索引擎,搜索到了相关解决办法,但是说明还不是很详细。
见网址:http://blog.youkuaiyun.com/johnpher/article/details/7596525
后来又看到了这个,貌似把我说的解释清楚了,
见网址:http://www.cnblogs.com/qianlifeng/archive/2012/02/12/2348366.html
我的程序代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser#python内置的包
APP_KEY = '你的key'
APP_SECRET = '你的密钥'
CALLBACK_URL = '回调地址'
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授权页面的url,利用webbrowser打开这个url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#获取code=后面的内容
print '输入url中code后面的内容后按回车键:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,类似abc123xyz456
expires_in = r.expires_in
# 设置得到的access_token
client.set_access_token(access_token, expires_in)
#可以打印下看看里面都有什么东西
#print client.statuses__public_timeline()
statuses = client.statuses__public_timeline()['statuses']
length = len(statuses)
#输出了部分信息
for i in range(0,length):
print u'昵称:'+statuses[i]['user']['screen_name']
print u'简介:'+statuses[i]['user']['description']
print u'位置:'+statuses[i]['user']['location']
print u'微博:'+statuses[i]['text']
关于回调地址的问题,可以看这儿:http://blog.youkuaiyun.com/monsion/article/details/8104257