使用微博的API和SDK的其中的关键一步是取得token. 而取得token是需要通过oauth2认证才可以得到。

下面是一段取得token的代码逻辑:


APP_KEY ='012345678'
APP_SECRET = '01234567891011121314151617181920'
CALL_BACK= 'http://www.lua.ren/callback'
client = weibo.APIClient(APP_KEY, APP_SECRET, CALL_BACK)
auth_url = client.get_authorize_url()
login_url = 'https://api.weibo.com/oauth2/authorize'
params = urllib.urlencode({'action' : 'submit','response_type' : 'code','redirect_uri' : CALL_BACK,'client_id' : APP_KEY,'userId' : 'userid','passwd' : 'password',})
url = client.get_authorize_url()

APP_KEY各APP_SECRET是申请OPEN API时被分配的,CALL_BACK是在微博开放API后台自定义的,当你用浏览器访问client.get_authorize_url()函数返回的url时,微博开发接口会调用这个callback的url,调用中包含了code这个字段,通过code可以取得token。

只有取得了token之后,才可以正常的访问微博的API。

代码如下:

r = client.request_access_token(code)
client.set_access_token(r.access_token, r.expires_in)

发送微博代码:

content = 'test'
if content:
    client.statuses.update.post(status=content)