OAuth2.0学习(1-11)新浪开放平台微博认证-使用OAuth2.0调用微博的开放API
使用OAuth2.0调用API
使用OAuth2.0调用API接口有两种方式:
1、 直接使用参数,传递参数名为 access_token
2、在header里传递,形式为在header里添加 Authorization:OAuth2空格abcd,这里的abcd假定为Access Token的值,其它接口参数正常传递即可。
注:所有的微博开放平台接口都部署在weibo.com域下,仅有移动端的授权接口在open.weibo.cn域。
授权中的其他功能
Scope
Scope是OAuth2.0新版授权页提供的一个功能,通过scope,平台将开放更多的微博核心功能给开发者,同时也加强用户隐私保护,提升了用户体验,用户在新OAuth2.0授权页中有权利选择赋予应用的功能。
Scope开放的接口文档:接口文档
客户端默认回调页
通常Mobile Native App没有服务器回调地址,您可以在应用控制台授权回调页处填写平台提供的默认回调页,该页面用户不可见,仅用于获取access token。
OAuth2.0客户端默认回调页:https://api.weibo.com/oauth2/default.html
强制登录
授权页会默认读取当前用户的微博登录状态,如果你想让用户重新登录,请在调用authorize接口时传入参数:forcelogin=true,默认不填写此参数相当于forcelogin=false。
取消授权回调页
开发者可以在应用控制台填写取消授权回调页,当用户取消你的应用授权时,开放平台会回调你填写的这个地址。并传递给你以下参数,source:应用appkey,uid :取消授权的用户,auth_end :取消授权的时间
OAuth2.0相关资源
以下SDK包含了OAuth2.0及新版API接口
| 下载Android SDK | 下载iOS SDK | 下载WP7 SDK |
| 下载PHP SDK(由SAE维护) | 下载Java SDK | 下载Python SDK |
| 下载Flash SDK | 下载Javascript SDK | 下载C# SDK |
移动开发SDK说明文档
| Android SDK 说明文档 | iOS SDK 说明文档 | WP7 SDK 说明文档 |
其他参考资料
OAuth是一种国际通用的授权方式, OAuth2.0的官方技术说明可参看 http://oauth.net/2/
如果你仍在使用Oauth1.0,请进入浏览相关文档。
OAuth2.0 错误码
微博OAuth2.0实现中,授权服务器在接收到验证授权请求时,会按照OAuth2.0协议对本请求的请求头部、请求参数进行检验,若请求不合法或验证未通过,授权服务器会返回相应的错误信息,包含以下几个参数:
- error: 错误码
- error_code: 错误的内部编号
- error_description: 错误的描述信息
- error_url: 可读的网页URI,带有关于错误的信息,用于为终端用户提供与错误有关的额外信息。
错误信息的返回方式有两种:
1. 当请求授权Endpoint:https://api.weibo.com/2/oauth2/authorize 时出现错误,返回方式是:跳转到redirect_uri,并在uri 的query parameter中附带错误的描述信息。
2. 当请求access token endpoing:https://api.weibo.com/oauth2/access_token 时出现错误,返回方式:返回JSON文本。例如:
|
1
2
3
4
5
|
{ "error": "unsupported_response_type", "error_code": 21329, "error_description": "不支持的ResponseType."} |
OAuth2.0错误响应中的错误码定义如下表所示:
| 错误码(error) | 错误编号(error_code) | 错误描述(error_description) |
|---|---|---|
| redirect_uri_mismatch | 21322 | 重定向地址不匹配 |
| invalid_request | 21323 | 请求不合法 |
| invalid_client | 21324 | client_id或client_secret参数无效 |
| invalid_grant | 21325 | 提供的Access Grant是无效的、过期的或已撤销的 |
| unauthorized_client | 21326 | 客户端没有权限 |
| expired_token | 21327 | token过期 |
| unsupported_grant_type | 21328 | 不支持的 GrantType |
| unsupported_response_type | 21329 | 不支持的 ResponseType |
| access_denied | 21330 | 用户或授权服务器拒绝授予数据访问权限 |
| temporarily_unavailable | 21331 | 服务暂时无法访问 |
| appkey permission denied | 21337 | 应用权限不足 |
OAuth2.0相关问题,查看 OAuth2.0相关问题
OAuth2.0学习(1-11)新浪开放平台微博认证-使用OAuth2.0调用微博的开放API的更多相关文章
- 开放平台鉴权以及OAuth2.0介绍
OAuth 2.0 协议 OAuth是一个开发标准,允许用户授权第三方网站或应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的内容. OAuth 2.0 ...
- 利用新浪云平台(SAE) 搭建 HUSTOJ 简易教程
前言: OnlineJudge(OJ)是一种代码在线判定平台,这里有许多的编程题目供你选择,你可以选择题目提交代码,OJ会自动返回你的代码的判定结果.是一种很方便的编程.算法练习平台.详情可见:百度百 ...
- Ueditor文本编辑器(新浪SAE平台版本) - 下载频道 - CSDN.NET
Ueditor文本编辑器(新浪SAE平台版本) - 下载频道 - CSDN.NET Ueditor文本编辑器(新浪SAE平台版本)
- 新浪SAE高级开发者认证通过
如题,新浪SAE高级开发者认证通过,申请的方式为提交开源项目地址,用的是如下的项目 http://jqext.sinaapp.com/ 之前该项目是部署在 mopaas 上的,在拿到高级开发者资格后迁 ...
- OAuth2.0学习(1-1)OAuth2.0是什么?
目前很多开放平台如新浪微博开放平台都在使用提供开放API接口供开发者使用,随之带来了第三方应用要到开放平台进行授权的问题 OAuth就是用于为第三方应用授权访问用户的资源应用的. 目前有OAuth1. ...
- 在C++98基础上学习C++11新特性
自己一直用的是C++98规范来编程,对于C++11只闻其名却没用过其特性.近期因为工作的需要,需要掌握C++11的一些特性,所以查阅了一些C++11资料.因为自己有C++98的基础,所以从C++98过 ...
- 基于新浪SAE平台的微信开发
自己的微信公众平台开发差不多了,欢迎关注试用哦,我会不定期在那里分享技术文章! 主要功能: 输入t+中文或者英文返回对应的英中翻译 输入[m]随机来首音乐听,建议在wifi下听 输入[ly+你的留 ...
- API开放平台接口设计-------基于OAuth2.0协议方式
1,简介OAuth http://www.ruanyifeng.com/blog/2019/04/oauth_design.html OAuth 是什么? http://www.ruanyifeng. ...
- Spring4.0学习笔记(11) —— Spring AspectJ 的五种通知
Spring AspectJ 一.基于注解的方式配置通知 1.额外引入的jar包: a) com.springsource.org.aopalliance-1.0.0.jar b) com.sprin ...
随机推荐
- Sql中根据旧表创建新表的SQL语句
今天在网上查了下,根据旧表创建新表的SQL语句,网上给了两个答案 create table tab_new like tab_old (使用旧表创建新表) create table tab_new a ...
- 深入理解Java虚拟机(第2版) 笔记目录
本篇为读深入理解Java虚拟机(第2版)一书的笔记目录. Java 运行期数据区 Java 垃圾回收算法 Java 内存分配策略 Java 类文件结构 Java 加载.链接.初始化 Java 类加载器
- 实用的HTML优化技巧
如何提升Web页面的性能,很多开发人员从多个方面来下手如JavaScript.图像优化.服务器配置,文件压缩或是调整CSS. 很显然HTML 已经达到了一个瓶颈,尽管它是Web开发 界面必备的核心语言 ...
- macOS下利用dSYM文件将crash文件中的内存地址转换为可读符号
一.使用流程 Windows下的程序运行崩溃时,往往可以利用pdb文件快速解析出程序崩溃的具体位置,甚至可以对应到源代码的具体行数.macOS下的symbolicatecrash也具备相应的功能.对应 ...
- window7 安装sass和compass
官网有详细的介绍,但是安装时候还是出现了一些小问题. 首先下载Rudy,然后根据提示勾选加入环境变量,由于第一次使用,我就选择了" msys2 base installlation" ...
- spring集成redis
redis是一种非关系型数据库,与mongoDB不同的是redis是内存数据库,所以访问速度很快.常用作缓存和发布-订阅式的消息队列.redis官方没有提供windows版本的软件.windows版本 ...
- 【Linux】 CentOS7 虚拟机配置
Linux虚拟机配置 从去年开始实习开始,公司电脑换了两个,自己的电脑也换了一个,每换一个新电脑,总免不了要去装一个Linux的虚拟机作为试验用.但是每次新装一个机器总是会遇到各种各样的问题让我用的不 ...
- Android学习笔记2——shape
Android有很多特别的xml文件,如常用的selector.style以及shape,熟练使用这些xml可以是我们的项目变得更个性化. 一.子标签(corners.gradient.padding ...
- 自动化运维工具---expec
作为运维经常操作Linux服务器是不可避免的事情的,那么你们都是怎么管理的呢? 我们管理的方式较为复杂了,我说一下: 有一套服务器资产管理系统,所有服务器都记录在上面,包括用户名密码,内外网地址都会有 ...
- hihocoder [Offer收割]编程练习赛52 D 部门聚会
看了题目的讨论才会做的 首先一点,算每条边(u, v)对于n*(n+1)/2种[l, r]组合的贡献 正着算不如反着算 哪些[l, r]的组合没有包含这条边(u, v)呢 这个很好算 只需要统计u这半 ...