新浪微博開放平臺出來好久了,如今纔開始研究,貌似有點晚了。。。。html
第一次折騰,老是出現這樣那樣的問題,即便照着別人成功的例子也是同樣,這不,開始運行的時候,運行下面的例子,老是報error:redirect_uri_mismatchweb
import sys import weibo import webbrowser APP_KEY = '' MY_APP_SECRET = '' REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html' api = weibo.APIClient(app_key=APP_KEY,app_secret=MY_APP_SECRET,redirect_uri=REDIRECT_URL) authorize_url = api.get_authorize_url() print authorize_url webbrowser.open_new(authorize_url)
按照別人說的,去應用--高級信息--OAuth2.0 受權設置,把取消受權回調頁設爲"https://api.weibo.com/oauth2/default.html",繼續運行仍是報一樣的錯。。繼續查資料,發現對於站內應用而言,還要修改應用實際地址,簡單的改法就是把回調地址和應用實際地址設爲同一個,即應用實際地址,再運行,果真成功認證了。api
登錄受權後會調轉到一個鏈接https://api.weibo.com/oauth2/default.html?code=beed54efcd7a079120b35941402af8f4
關鍵就是code值,這個是認證的關鍵。手動輸入code值模擬認證
after_redirect_url = "https://api.weibo.com/oauth2/default.html?code=beed54efcd7a079120b35941402af8f4"
code = after_redirect_url.split("=")[1]
request = api.request_access_token(code, REDIRECT_URL)
access_token = request.access_token
expires_in = request.expires_in
api.set_access_token(access_token, expires_in)
api.statuses.update.post(status=u'Test')
access_token就是得到的token,expires_in是受權的過時時間 (UNIX時間)
用set_access_token保存受權。往下就能夠調用微博接口了。測試發了一條微博「Test」,能夠登陸本身的微博去查看是否發送成功。app