V1 To V2/mobile

跳转到: 导航, 搜索

移动应用迁移指引


切换场景

随着开放平台地进一步发展,旧版接口(V1版接口)的功能已经无法满足广大开发者的需求,因此微博开放平台开放了一套全新的接口(V2版接口),V2版接口较V1具有更多功能、更高效、更规范、更可控等优势。


针对开发者调用接口而言,无需再进行像v1复杂的签名算法,由于v2采用https协议,只需在调用时传递相关授权(accesstoken)和必要参数,即可成功调用,避免了v1中签名错误导致的调用失败等问题。同时V1在10月中旬将全面下线,建议所有开发者在10初切换到oauth2和v2版接口上。


OAuth2授权

针对客户端应用的大致授权流程如下:

20120911mobile.png

针对客户端授权认证,建议采用WebView组件,WebView的WebViewClient里提供了大量的方法,包括处理ssl请求等,给开发节省了不少的时间,从而减少了开发周期。


图中触发oauth2登陆授权认证步骤,会涉及到2个接口:

OAuth2(开发指南
请求授权 oauth2/authorize 请求用户授权Token
获取授权 oauth2/access_token 获取授权过的Access Token


CURL调用DEMO如下:

curl “https://api.weibo.com/oauth2/authorize?client_id=appkey&redirect_uri=回调地址” –k

curl –d “client_id=appkey&client_secret=appsecret&grant_type=authorization_code&code=authorize接口返回的code&redirect_uri=回调地址” “https://api.weibo.com/oauth2/access_token” –k


由于oauth2获取到的授权是有效期的,开放平台针对此现象做了优化,当在授权未过期的情况下,重新发起授权请求,用户同意授权后,原有授权有效期将重置到初始时间,即未审核应用一天,审核应用七天。


同时需要开发者注意一点,oauth2授权认证和oauth1不同,回调地址redirect_uri是必填参数,需要用户在应用控制台设置相关回调地址或者绑定相关域名。但针对客户端应用,有些开发者不知设置什么样子的地址,针对这一问题,开放平台提供了默认回调地址即:https://api.weibo.com/oauth2/default.html


接口

在授权完成后,根据各个应用的不同,需要调用相关接口 调用接口需要参照V2文档中的参数使用GET或者POST来请求相关数据,调用接口时所需资料如下:


  • 接口调用demo:
  • curl “https://api.weibo.com/2/statuses/user_timeline.json”-k
  • curl –d “access_token=***&status=****”“https://api.weibo.com/2/statuses/update.json” –k



常见问题

  • 1、类似跳转到官方客户端的授权方式是什么?
    • 此授权方式是sso授权认证,是针对安装了微博官方客户端3.0的用户设计的,如果想申请此授权方式,把应用名称和appkey私信给@MUNTO_AKIRA


  • 2、回调地址只能是一个固定的地址吗?
    • 不一定是一个固定的地址,可以绑定域名,域名下的有效地址都可以作为回调地址。
    • 例如:绑定了b.com,那a.b.com、b.com/x和a.b.com/x都可以作为回调地址


  • 3、如何查询应用的access_token有效期是多少?
    • 桌面客户端、手机客户端类应用,测试:1天、未审核:7天、审核后并上广场展示后:90天。
    • 非客户端类应用,测试1天、普通7天、中级15天、高级30天、合作90天。


  • 4、access_token过期后怎么处理?
    • access_token过期调用接口时,平台会返回错误码为21337的错误,此时需要引导用户重新进行授权。建议在每次获得用户授权时保存过期时间,即expirein字段,返回的是accesstoken的是剩余时间,是以s为单位。


  • 5、获取用户授权是出现 error :redirect_uri_mismatch 怎么解决?
    • 此错误是由于回调地址填写错误造成的,解决办法:
      • a)站内应用:redirect_uri等于应用信息中的站内应用地址;
      • b)其他应用:redirect_uri需与http://open.weibo.com/apps/30871*****/info/advanced 地址中的授权设置中地址一
        • 致,或者在绑定的域名下的有效地址。


文档更新时间: 2012-09-12