V1 To V2/web
第56行: | 第56行: | ||
− | 接口调用demo: | + | *接口调用demo: |
− | <nowiki>curl “https://api.weibo.com/2/statuses/user_timeline.json”-k </nowiki> | + | *<nowiki>curl “https://api.weibo.com/2/statuses/user_timeline.json”-k </nowiki> |
− | <nowiki>curl –d “access_token=***&status=****”“https://api.weibo.com/2/statuses/update.json” –k </nowiki> | + | *<nowiki>curl –d “access_token=***&status=****”“https://api.weibo.com/2/statuses/update.json” –k </nowiki> |
2012年9月12日 (三) 14:24的最后版本
Web应用迁移指引
切换场景
随着开放平台地进一步发展,旧版接口(V1版接口)的功能都已经无法满足广大开发者的需求,因此微博开放平台开放了一套全新的接口(V2版接口),V2版接口较V1具有更多功能、更高效、更规范、更可控等优势。
针对开发者调用接口而言,无需再进行像v1复杂的签名算法,由于v2采用https协议,只需在调用时传递相关授权(accesstoken)和必要参数,即可成功调用,避免了v1中签名错误导致的调用失败等问题。同时V1在10月中旬将全面下线,建议所有开发者在10初切换到oauth2和v2版接口上。
OAuth2授权
针对Web应用的大致授权流程如下:
图中触发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是必填参数,需要用户在应用控制台设置相关回调地址或者绑定相关域名。
接口及组件
在授权完成后,根据各个应用的不同,需要调用相关接口或者使用相关组件,调用接口方式相对比较灵活,可以根据各个项目的不同,定制不同的功能,微博组件的方式,比较方便,容易操作,不会带来大量的开发耗时。
采用调用接口方式需要参照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
- 开放平台提供了相关sdk,可以根据sdk为基础做开发
- sdk下载地址:http://open.weibo.com/wiki/SDK
- 错误代码:http://open.weibo.com/wiki/Help/error
- 测试工具:http://open.weibo.com/tools/console
采用微博组件,只需将自动生成的代码,复制到所需位置即可,所需资料如下:
- 微博组件地址http://open.weibo.com/widgets?cat=wb
- 当使用微博组件的时候,需要先绑定域名,否则将造成无法正常使用的现象
常见问题
- 1,回调地址只能是一个固定的地址吗?
- 不一定是一个固定的地址,可以绑定域名,域名下的有效地址都可以作为回调地址。
- 例如:绑定了b.com,那a.b.com、b.com/x和a.b.com/x都可以作为回调地址
- 2,如何查询应用的access_token有效期是多少?
- 桌面客户端、手机客户端类应用,测试:1天、未审核:7天、审核后并上广场展示后:90天;
- 非客户端类应用,测试1天、普通7天、中级15天、高级30天、合作90天。
- 3,access_token过期后怎么处理?
- access_token过期调用接口时,平台会返回错误码为21337的错误,此时需要引导用户重新进行授权。建议在每次获得用户授权时保存过期时间,即expirein字段,返回的是accesstoken的是剩余时间,是以s为单位。
- 4,获取用户授权是出现 error :redirect_uri_mismatch 怎么解决?
- 此错误是由于回调地址填写错误造成的,解决办法:
- a)站内应用:redirect_uri等于应用信息中的站内应用地址;
- b)其他应用:redirect_uri需与http://open.weibo.com/apps/30871*****/info/advanced 地址中的授权设置中地址一
- 致,或者在绑定的域名下的有效地址。
- 此错误是由于回调地址填写错误造成的,解决办法: