Test

跳转到: 导航, 搜索
(以“ ==新接口切换概述== 随着开放平台地进一步开放,V1版接口(旧版接口)无论性能、功能都已经无法满足广大开发者的需求,...”为内容创建页面)
 
第4行: 第4行:
  
  
而原有的V1版接口将在近期全面下线,本文将为所有仍使用V1版接口的已审核上线应用提供切换指南,帮助您更快地完成切换。
+
而原有的V1版接口将在近期全面下线,本文将为所有仍使用V1版接口的已审核上线应用提供切换引导,帮助您更快地完成切换。
  
 
==为什么要升级到V2版接口==
 
==为什么要升级到V2版接口==
第11行: 第11行:
 
**a)V2较V1新增约200个接口,增强的关系接口、推荐接口、搜索话题接口、短链接口、热门微博接口、位置服务接口、通知接口、通用服务接口、社交电视接口;
 
**a)V2较V1新增约200个接口,增强的关系接口、推荐接口、搜索话题接口、短链接口、热门微博接口、位置服务接口、通知接口、通用服务接口、社交电视接口;
 
**b)另外,SCOPE授权功能、好友分组接口、邀请接口、社交化接口也即将开放。
 
**b)另外,SCOPE授权功能、好友分组接口、邀请接口、社交化接口也即将开放。
 +
  
 
*2、更高效
 
*2、更高效
第17行: 第18行:
 
**c)用户返回值增加互粉好友数、是否关注我、是否被我关注等信息;
 
**c)用户返回值增加互粉好友数、是否关注我、是否被我关注等信息;
 
**d)timeline类接口未来将全部增加筛选过滤功能(feature)和应用隔离功能(base_app)。
 
**d)timeline类接口未来将全部增加筛选过滤功能(feature)和应用隔离功能(base_app)。
 +
  
 
*3、更规范
 
*3、更规范
 
**a)统一参数、返回值字段,全部小写字母,单词和单词之间用“_”链接;
 
**a)统一参数、返回值字段,全部小写字母,单词和单词之间用“_”链接;
 
**b)核心字段:微博、评论、用户、关系全部标准化;
 
**b)核心字段:微博、评论、用户、关系全部标准化;
**c)统一的新错误返回值格式及错误码,V2错误码地址:http://open.weibo.com/wiki/Error_code。
+
**c)统一的新错误返回值格式及错误码,V2错误码地址:[[Error_code|http://open.weibo.com/wiki/Error_code]]。
 +
 
  
 
*4、更可控
 
*4、更可控
 
**a)放弃rest风格的接口URI,全部采用:域+版本号+资源类+接口名+返回值格式+参数,如图:
 
**a)放弃rest风格的接口URI,全部采用:域+版本号+资源类+接口名+返回值格式+参数,如图:
 
   
 
   
 +
 
**b)将接口分为两级权限:普通、高级,使得优质应用得以使用更高级接口;
 
**b)将接口分为两级权限:普通、高级,使得优质应用得以使用更高级接口;
 
**c)添加了接口授权管理系统:接口可以分组打包,并对应用开放权限申请及授权管理;
 
**c)添加了接口授权管理系统:接口可以分组打包,并对应用开放权限申请及授权管理;
 +
  
 
===V1禁止调用时间===
 
===V1禁止调用时间===
第33行: 第38行:
 
*2、2012年8月25日,禁止所有用户量在1000以下的“已审核应用”调用V1接口;
 
*2、2012年8月25日,禁止所有用户量在1000以下的“已审核应用”调用V1接口;
 
*3、2012年9月前后,禁止所有应用调用V1接口;
 
*3、2012年9月前后,禁止所有应用调用V1接口;
 +
  
 
==V1到V2怎么切换==
 
==V1到V2怎么切换==
 
===简述===
 
===简述===
 +
V1切换到V2主要需要完成OAuth1.0到OAuth2.0的过度及完成V1原有接口与V2中新接口的对应替换。
  
 
===OAuth1.0到OAuth2.0===
 
===OAuth1.0到OAuth2.0===
 
*1、OAuth2.0简述
 
*1、OAuth2.0简述
 
**OAuth2.0是较OAuth1.0更简单更安全的授权方式,同时支持Web,桌面和移动应用。是未来新浪微博开放平台最主要的用户身份验证和授权方式。
 
**OAuth2.0是较OAuth1.0更简单更安全的授权方式,同时支持Web,桌面和移动应用。是未来新浪微博开放平台最主要的用户身份验证和授权方式。
 +
  
 
*2、切换前准备
 
*2、切换前准备
**请先阅读OAuth2.0开发指南。
+
**请先阅读[[Oauth2|OAuth2.0开发指南]]。
 
**OAuth2.0授权方式与OAuth1.0相比,引入授权回调页与绑定域名,简化了授权流程,同时也提升了授权的安全性。
 
**OAuth2.0授权方式与OAuth1.0相比,引入授权回调页与绑定域名,简化了授权流程,同时也提升了授权的安全性。
  
 
**在实现OAuth2.0授权方式前,针对不同的应用我们需要设置应用的授权回调页或进行域名的绑定,用于获得授权成功后返回的code,再通过code获取access_token。
 
**在实现OAuth2.0授权方式前,针对不同的应用我们需要设置应用的授权回调页或进行域名的绑定,用于获得授权成功后返回的code,再通过code获取access_token。
  
**使用开发者帐号登录http://open.weibo.com/,进入“我的应用”控制台,点击需要切换的应用。针对您应用的类型进行如下设置:
+
**使用开发者帐号登录[http://open.weibo.com http://open.weibo.com],进入“我的应用”控制台需要切换的应用进行设置:
***1)网站接入类
+
**1)网站接入类
点击控制台导航“网站信息”,在网站基本信息中查看网站域名。如果您的网站应用还未验证所有权,会提示您进行所有权验证,点击进入验证页面完成所有权验证。
+
***点击控制台导航“网站信息”,在网站基本信息中查看网站域名。如果您的网站应用还未验证所有权,会提示您进行所有权验证,点击进入验证页面完成所有权验证。
注意:验证时填写的网站域名即为您的应用的绑定域名
+
***注意:验证时填写的网站域名即为您的应用的绑定域名
  
***2)站内应用
 
站内应用已经是OAuth2.0授权方式,无需做改动。
 
  
***3)客户端应用 & 其他应用
+
**2)站内应用
点击控制台导航“应用信息”—> “高级信息”,进行授权回调页或域名的绑定。设置回调页不需要二审,方便您进行测试开发。绑定域名需要进行二审,二审时线上应用不受影响,绑定域名增加应用的安全性,同时该域名下的所有页面都可作为授权回调页。
+
***站内应用已经是OAuth2.0授权方式,无需做改动。
注意:客户端也需要设置授权回调页或绑定域名,在程序中以webview的方式进行调用授权页面返回code,具体实现参考相应的客户端SDK:http://open.weibo.com/wiki/SDK
+
 
 +
 
 +
**3)客户端应用 & 其他应用
 +
***点击控制台导航“应用信息”—> “高级信息”,进行授权回调页或域名的绑定。设置回调页不需要二审,方便您进行测试开发。绑定域名需要进行二审,二审时线上应用不受影响,绑定域名增加应用的安全性,同时该域名下的所有页面都可作为授权回调页。
 +
***注意:客户端也需要设置授权回调页或绑定域名,在程序中以webview的方式进行调用授权页面返回code,具体实现参考相应的客户端SDK:http://open.weibo.com/wiki/SDK
 +
 
  
 
*3、OAuth2.0授权实现
 
*3、OAuth2.0授权实现
 +
 +
 
**主要流程(请先阅读OAuth2.0开发指南):
 
**主要流程(请先阅读OAuth2.0开发指南):
***1)引导需要授权的用户访问如下地址:https://api.weibo.com/oauth2/authorize?client_id=YOUR_APP_KEY&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
 
注意:redirect_uri必须为绑定域名下网页或设置的回调地址。
 
本地测试技巧:可以通过绑定hosts指向本地测试代码
 
例如,您应用的redirect_uri为:http://aa.abc.com/index.php ,而您对应的本地地址为http://127.0.0.1/index.php,则您可以将hosts绑定成:127.0.0.1 aa.abc.com
 
  
***2)如果用户同意授权,页面跳转至
 
YOUR_REGISTERED_REDIRECT_URI/?code=CODE
 
注意:每次返回的code值都是不一样的且在换取access_token后失效
 
  
***3)使用code换取access_token
+
**1)引导需要授权的用户访问如下地址:
 +
<pre>
 +
https://api.weibo.com/oauth2/authorize?client_id=YOUR_APP_KEY&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
 +
</pre>
 +
 
 +
 
 +
**注意:redirect_uri必须为绑定域名下网页或设置的回调地址。
 +
**本地测试技巧:可以通过绑定hosts指向本地测试代码。例如,您应用的redirect_uri为:http://aa.abc.com/index.php ,而您对应的本地地址为[http://127.0.0.1/index.php http://127.0.0.1/index.php],则您可以将hosts绑定成:127.0.0.1 aa.abc.com 。
 +
 
 +
 
 +
**2)如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE
 +
**注意:每次返回的code值都是不一样的且在换取access_token后失效。
 +
 
 +
 
 +
**3)使用code换取access_token
 +
<pre>
 
https://api.weibo.com/oauth2/access_token?client_id=YOUR_ APP_KEY &client_secret=YOUR_APP_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
 
https://api.weibo.com/oauth2/access_token?client_id=YOUR_ APP_KEY &client_secret=YOUR_APP_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
注意:必须使用POST方式提交,其中client_id=YOUR_APP_KEY&client_secret=YOUR_APP_SECRET可以使用basic方式加入header中
+
</pre>
 +
**注意:必须使用POST方式提交,其中client_id=YOUR_APP_KEY&client_secret=YOUR_APP_SECRET可以使用basic方式加入header中。
 +
 
 +
 
 +
**返回值
 +
**{"access_token":"SlAV32hkKG","remind_in":"3600","expires_in":3600,"uid":"1902538057"}
 +
**注意:OAuth2.0的access_token较OAuth1.0具有一定的有效期,当access_token过期时需要引导用户重新授权。应用的授权有效期可以访问[[Rate-limiting |接口访问权限说明]]或在应用控制台查看。
 +
 
 +
**可能遇到的问题:
 +
***1)如何判断access_token是否过期?
 +
***首先,在每次用户授权时,将expires_in(单位:秒)加上当时系统时间存入数据库,在每次调用接口前将数据库中存的时间与当前时间比较,小于当前则引导用户重新授权,大于则正常调用接口;
 +
***其次,每次调用接口时,如果使用的access_token已过期,平台会返回错误码为21332的错误,此时需引导用户重新授权。
 +
 
 +
***2)如何将OAuth1.0授权用户过度到OAuth2.0?
 +
 
 +
 
 +
 
 +
 
 +
 
 +
**4)使用获得的OAuth2.0 Access Token调用API
 +
**读取接口一般使用GET方式提交,如:
 +
<pre>
 +
https://api.weibo.com/2/statuses/home_timeline.json?access_token=SlAV32hkKG&count=20
 +
</pre>
  
返回值
 
{ "access_token":"SlAV32hkKG", "remind_in ":3600, "expires_in":3600 }
 
注意:OAuth2.0的access_token
 
  
 +
**写入接口必须使用POST方式提交,如:
  
***4)使用获得的OAuth2.0 Access Token调用API
 
读取接口一般使用GET方式提交,如:https://api.weibo.com/2/statuses/home_timeline.json?access_token= SlAV32hkKG& count=20
 
写入接口必须使用POST方式提交,如:
 
  
 +
===V1接口到V2接口===
  
*2、V1接口到V2接口
+
列出V1接口和V2接口的对应关系2012年8月10日 (五) 16:34 (CST)~

2012年8月10日 (五) 16:34的版本

目录

新接口切换概述

随着开放平台地进一步开放,V1版接口(旧版接口)无论性能、功能都已经无法满足广大开发者的需求,因此微博开放平台对V1版接口进行了全面地升级得到全新的V2版接口(新版接口)。


而原有的V1版接口将在近期全面下线,本文将为所有仍使用V1版接口的已审核上线应用提供切换引导,帮助您更快地完成切换。

为什么要升级到V2版接口

V2版较V1版接口的优势

  • 1、更多功能
    • a)V2较V1新增约200个接口,增强的关系接口、推荐接口、搜索话题接口、短链接口、热门微博接口、位置服务接口、通知接口、通用服务接口、社交电视接口;
    • b)另外,SCOPE授权功能、好友分组接口、邀请接口、社交化接口也即将开放。


  • 2、更高效
    • a)微博、评论、用户等返回值增加trim开关;
    • b)微博评论、转发数可以随微博返回值直接返回;
    • c)用户返回值增加互粉好友数、是否关注我、是否被我关注等信息;
    • d)timeline类接口未来将全部增加筛选过滤功能(feature)和应用隔离功能(base_app)。


  • 3、更规范
    • a)统一参数、返回值字段,全部小写字母,单词和单词之间用“_”链接;
    • b)核心字段:微博、评论、用户、关系全部标准化;
    • c)统一的新错误返回值格式及错误码,V2错误码地址:http://open.weibo.com/wiki/Error_code


  • 4、更可控
    • a)放弃rest风格的接口URI,全部采用:域+版本号+资源类+接口名+返回值格式+参数,如图:


    • b)将接口分为两级权限:普通、高级,使得优质应用得以使用更高级接口;
    • c)添加了接口授权管理系统:接口可以分组打包,并对应用开放权限申请及授权管理;


V1禁止调用时间

  • 1、2012年7月24日,禁止所有“未审核应用”调用V1接口;
  • 2、2012年8月25日,禁止所有用户量在1000以下的“已审核应用”调用V1接口;
  • 3、2012年9月前后,禁止所有应用调用V1接口;


V1到V2怎么切换

简述

V1切换到V2主要需要完成OAuth1.0到OAuth2.0的过度及完成V1原有接口与V2中新接口的对应替换。

OAuth1.0到OAuth2.0

  • 1、OAuth2.0简述
    • OAuth2.0是较OAuth1.0更简单更安全的授权方式,同时支持Web,桌面和移动应用。是未来新浪微博开放平台最主要的用户身份验证和授权方式。


  • 2、切换前准备
    • 请先阅读OAuth2.0开发指南
    • OAuth2.0授权方式与OAuth1.0相比,引入授权回调页与绑定域名,简化了授权流程,同时也提升了授权的安全性。
    • 在实现OAuth2.0授权方式前,针对不同的应用我们需要设置应用的授权回调页或进行域名的绑定,用于获得授权成功后返回的code,再通过code获取access_token。
    • 使用开发者帐号登录http://open.weibo.com,进入“我的应用”控制台需要切换的应用进行设置:
    • 1)网站接入类
      • 点击控制台导航“网站信息”,在网站基本信息中查看网站域名。如果您的网站应用还未验证所有权,会提示您进行所有权验证,点击进入验证页面完成所有权验证。
      • 注意:验证时填写的网站域名即为您的应用的绑定域名


    • 2)站内应用
      • 站内应用已经是OAuth2.0授权方式,无需做改动。


    • 3)客户端应用 & 其他应用
      • 点击控制台导航“应用信息”—> “高级信息”,进行授权回调页或域名的绑定。设置回调页不需要二审,方便您进行测试开发。绑定域名需要进行二审,二审时线上应用不受影响,绑定域名增加应用的安全性,同时该域名下的所有页面都可作为授权回调页。
      • 注意:客户端也需要设置授权回调页或绑定域名,在程序中以webview的方式进行调用授权页面返回code,具体实现参考相应的客户端SDK:http://open.weibo.com/wiki/SDK


  • 3、OAuth2.0授权实现


    • 主要流程(请先阅读OAuth2.0开发指南):


    • 1)引导需要授权的用户访问如下地址:
https://api.weibo.com/oauth2/authorize?client_id=YOUR_APP_KEY&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI


    • 注意:redirect_uri必须为绑定域名下网页或设置的回调地址。
    • 本地测试技巧:可以通过绑定hosts指向本地测试代码。例如,您应用的redirect_uri为:http://aa.abc.com/index.php ,而您对应的本地地址为http://127.0.0.1/index.php,则您可以将hosts绑定成:127.0.0.1 aa.abc.com 。


    • 2)如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE
    • 注意:每次返回的code值都是不一样的且在换取access_token后失效。


    • 3)使用code换取access_token
https://api.weibo.com/oauth2/access_token?client_id=YOUR_ APP_KEY &client_secret=YOUR_APP_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
    • 注意:必须使用POST方式提交,其中client_id=YOUR_APP_KEY&client_secret=YOUR_APP_SECRET可以使用basic方式加入header中。


    • 返回值
    • {"access_token":"SlAV32hkKG","remind_in":"3600","expires_in":3600,"uid":"1902538057"}
    • 注意:OAuth2.0的access_token较OAuth1.0具有一定的有效期,当access_token过期时需要引导用户重新授权。应用的授权有效期可以访问接口访问权限说明或在应用控制台查看。
    • 可能遇到的问题:
      • 1)如何判断access_token是否过期?
      • 首先,在每次用户授权时,将expires_in(单位:秒)加上当时系统时间存入数据库,在每次调用接口前将数据库中存的时间与当前时间比较,小于当前则引导用户重新授权,大于则正常调用接口;
      • 其次,每次调用接口时,如果使用的access_token已过期,平台会返回错误码为21332的错误,此时需引导用户重新授权。
      • 2)如何将OAuth1.0授权用户过度到OAuth2.0?



    • 4)使用获得的OAuth2.0 Access Token调用API
    • 读取接口一般使用GET方式提交,如:
https://api.weibo.com/2/statuses/home_timeline.json?access_token=SlAV32hkKG&count=20


    • 写入接口必须使用POST方式提交,如:


V1接口到V2接口

列出V1接口和V2接口的对应关系2012年8月10日 (五) 16:34 (CST)~