zoukankan      html  css  js  c++  java
  • 新浪微博 oauth2.0 redirect_uri_mismatch

    新浪微博开放平台出来很久了,现在才开始研究,貌似有点晚了。。。。

    第一次折腾,总是出现这样那样的问题,即使照着别人成功的例子也是一样,这不,开始运行的时候,运行下面的例子,总是报error:redirect_uri_mismatch

    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",继续运行还是报同样的错。。继续查资料,发现对于站内应用而言,还要修改应用实际地址,简单的改法就是把回调地址和应用实际地址设为同一个,即应用实际地址,再运行,果然成功认证了。

    登陆授权后会调转到一个连接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”,可以登录自己的微博去查看是否发送成功。

  • 相关阅读:
    什么是被 GC Roots 直接引用的对象?
    什么情况下JVM内存中的一个对象会被垃圾回收?
    图解GC流程
    图解JVM内存区域划分
    图解JVM类加载机制和双亲委派模型
    Nginx 是怎么工作的?
    ThreadLocal 线程本地存储
    centos7 配置阿里镜像
    C# 类库项目 无法创建 “资源字典” 文件
    linux 启动jar包 指定yml配置文件和输入日志文件
  • 原文地址:https://www.cnblogs.com/bluescorpio/p/3352488.html
Copyright © 2011-2022 走看看