新浪微博 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

相关文章
相关标签/搜索