新浪微博 oauth2.0 redirect_uri_mismatch

新浪微博開放平臺出來好久了,如今纔開始研究,貌似有點晚了。。。。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

相關文章
相關標籤/搜索