Test

跳转到: 导航, 搜索
(清空页面)
 
(未显示2个用户的12个中间版本)
第1行: 第1行:
 +
<div style="text-align:center;"><h1>新版接口迁移指南</h1></div>
  
 +
==为什么要迁移到新版接口==
 +
*全新的新版(V2)接口较旧版(V1)接口具有更丰富的功能、更高效、更规范、更可控等优势,很好地满足了开发者的需求。
 +
 +
 +
*V1接口使用的OAuth1.0授权方式无法适应进一步的开放,已被各大开放平台弃用,由全新的OAuth2.0授权方式取代。
 +
 +
 +
===新版接口较旧版接口的优势===
 +
*1、更多功能
 +
**a)V2较V1新增了大量接口,增强的关系接口、搜索话题接口、短链接口、热门微博接口、位置服务接口、通知接口、通用
 +
***服务接口、社交电视接口;
 +
**b)另外,SCOPE授权功能、好友分组接口、邀请接口、社交化接口、表态接口也即将开放。
 +
 +
 +
*2、更高效
 +
**a)微博、评论、用户等返回值增加trim开关,按需返回数据,减少冗余数据占用带宽,适应移动应用特点;
 +
**b)微博评论、转发数可以随微博返回值直接返回,无需额外调用接口,减轻程序负担;
 +
**c)用户返回值增加互粉好友数、是否关注我、是否被我关注等信息,直观地体现用户关系;
 +
**d)timeline类接口未来将全部增加筛选过滤功能(feature)和应用隔离功能(base_app),可按应用需要筛选和隔离消息流。
 +
 +
 +
*3、更规范
 +
**a)统一参数、返回值字段,全部小写字母,单词和单词之间用“_”链接;
 +
**b)接口URI,全部采用:域+版本号+资源类+接口名+返回值格式+参数;
 +
**c)核心字段:微博、评论、用户、关系全部标准化,避免核心字段在不同接口中返回值不同,从而降低开发成本;
 +
**d)统一的新错误返回值格式及错误码,V2错误码地址:[[Error_code|http://open.weibo.com/wiki/Error_code]]。
 +
 +
 +
*4、更可控
 +
**a)将接口分为两级权限:普通、高级,使高级功能接口的权限控制更清晰、透明;
 +
**b)添加了[http://open.weibo.com/apps 接口授权管理控制台]:接口可以分组打包,并对应用开放授权及接口级别的申请,缩减申请流程。
 +
 +
 +
===V1禁止调用时间===
 +
*1、2012年7月24日,禁止所有“未审核应用”调用V1接口;
 +
*2、2012年8月27日,禁止所有用户量在1000以下的“已审核应用”调用V1接口(已审核[http://x.weibo.com Xweibo]应用暂时不受影响);
 +
*3、2012年10月初左右,禁止所有应用调用V1接口,具体时间请关注[http://e.weibo.com/openapi @微博开放平台 ]。
 +
 +
 +
*禁止调用V1接口的应用在调用V1接口时会返回:“40109 Oauth Error: consumer_key_refused! ” 错误提示。
 +
 +
 +
*V1接口将在近期全面下线,本文为所有仍使用V1接口的已审核应用提供迁移引导,帮助您更快地完成迁移。
 +
 +
 +
==迁移中常见问题==
 +
 +
*1、Xweibo组件及应用如何过度到V2版?
 +
**[http://x.weibo.com Xweibo]已审核上线应用在10月左右暂时不受影响,需要积极配合[http://x.weibo.com Xweibo]官方提示进行相应的升级。请关注Xweibo官网:http://x.weibo.com 。
 +
 +
 +
*2、V1中的私信及获取用户信息接口为什么不开放?
 +
**私信及涉及隐私的用户信息接口被大量应用滥用,导致大量用户投诉,给平台的开放造成了非常恶劣影响,出于对用户隐私的保护,平台决定不再开放此类导致用户信息泄漏的接口。
 +
 +
 +
*3、OAuth2.0授权需要申请吗?
 +
**[[Oauth2|OAuth2.0]]授权无需申请,任何应用都可以使用。
 +
**需要额外申请的是授权有效期或客户端验证授权。授权有效期可在应用控制台,接口管理标签下的授权机制选项中进行在线申请,客户端验证授权申请方式参见第二个问题。
 +
 +
 +
*4、怎么申请客户端的验证授权(Resource Owner Password Credentials)方式?
 +
**因为[[Oauth2|OAuth2.0]]的客户端验证授权会获得用户明文密码,所以实行有限开放。
 +
 +
 +
**申请条件:
 +
**a)应用分类属于桌面客户端、手机客户端。
 +
**b)应用本身已经通过开放平台文案、广场审核,并在广场上展示超过15天。
 +
**c)应用使用人数在30000以上。
 +
**d)应用本身功能与新浪微博关联紧密。
 +
 +
 +
**满足条件后在应用控制台的“接口管理”-->“授权机制”中申请。
 +
 +
 +
*5、手机客户端、PC客户端应用是否需要设置回调页?
 +
**需要,使用Web应用的验证授权(Authorization Code)方式的客户端也需要设置授权回调页或绑定域名,在程序中以webview的方式进行调用授权页面返回code,具体实现参考相应的客户端SDK:http://open.weibo.com/wiki/SDK。
 +
 +
 +
*6、如何查询应用的access_token有效期是多少?
 +
**a)桌面客户端、手机客户端类应用,测试:1天、尽审核:7天、审核后并上广场展示后:90天。
 +
**b)非客户端类应用,测试1天、普通7天、中级15天、高级30天、合作90天。
 +
   
 +
 +
*7、如何申请延长应用的access_token有效期?
 +
**a)桌面客户端、手机客户端类应用,未审核应用在应用控制台申请审核通过后7天,如需要达到90天有效期,审核通过后
 +
***在申请广场审核。
 +
**b)非客户端类应用,未审核应用在应用控制台申请审核通过后为普通级别7天, 如需申请更高级别,在应用控制台“接口管
 +
***理”-->“调用频次”中进行申请。
 +
 +
 +
*8、如何计算某个用户的access_token过期时间?
 +
**a)用户授权时,oauth2/access_token接口返回的expires_in(单位:秒)值就是access_token的生命周期。
 +
**b)从上述对应表中,找到应用所对应的授权有效期,过期时间 = 用户授权时间 + 授权有效期。
 +
 +
 +
**应用的授权有效期可以访问[[Rate-limiting |接口访问权限说明]]或在[http://open.weibo.com/apps 应用控制台]查看。
 +
 +
 +
*9、access_token过期后怎么处理?
 +
**access_token过期调用接口时,平台会返回错误码为21332的错误,此时需要引导用户重新进行授权。建议在每次获得用户授权时保存过期时间,在每次调用接口前判断用户access_token是否过期。
 +
 +
 +
**引导已授权用户再次授权时,如果此用户为已登录新浪微博状态,则授权页面为“一闪而过”无需用户再点击“授权”按钮,如果想让用户重新登录授权,则在调用authorize接口是传入参数:forcelogin=true,默认不填(授权页一闪而过)此参数相当于forcelogin=false。
 +
 +
 +
*10、已上线应用如何进行本地测试?
 +
**a)应用不含高级权限或高级接口,建议申请一个普通的Appkey进行本地测试;
 +
**b)应用含高级接口或高级权限,可以考虑绑定hosts指向本地测试代码进行测试。
 +
***例如:应用redirect_uri为:[http://aa.abc.com/index.php 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 。
 +
 +
 +
*11、如何将已授权用户从OAuth1.0过度到OAuth2.0授权?
 +
**应用授权方式从OAuth1.0迁移到[[Oauth2|OAuth2.0]]时,应用的授权用户总数不变,以下是进行用户过度的两个建议:
 +
**a)直接上线[[Oauth2|OAuth2.0]]授权版本,[[Oauth2|OAuth2.0]]获取access_token时返回用户的uid,根据此uid判断该用户为老用户或新用
 +
***户,新增或更新数据库中用户access_token等信息;
 +
**b)使用get_oauth2_token接口换取[[Oauth2|OAuth2.0]]的access_token,此方法可以免去用户对[[Oauth2|OAuth2.0]]第一次授权,适当延长过
 +
***度[[Oauth2|OAuth2.0]]的时间以完成a)的实现(对于授权有效期较长或客户端类应用可以考虑此方法)。
 +
 +
***注意:做批量换取是需谨慎,同一个OAuth1.0的Access Token只能换取一次(多次调用将返回同一个token),过期时间
 +
*****从第一次换取的时候计算。
 +
 +
 +
*12、迁移时是否需要添加测试帐号?
 +
**a)测试帐号仅对未审核应用限制,如果您的应用在V1时已经审核通过,则无需添加测试用户。
 +
**b)如果您使用了未审核的Appkey进行测试,需要您在应用或网站控制台“应用信息”或“网站信息”-->“测试帐号”中添加测试帐
 +
***号,未审核应用只有应用创建者与测试帐号才能调用接口。
 +
 +
 +
*13、V2版接口返回值为什么仅支持JSON格式不支持XML格式返回?
 +
**a)接口返回值中可能会含有html等字段,采用XML格式返回时需要对html进行特殊处理,直接影响到平台包装返回值及开
 +
***发者解析返回值的效率;
 +
**b)对于JS等语言在解析复杂的XML难度较高,效率较低;
 +
**c)XML格式较JSON采用Key-Value的形式有很大冗余,不符合手机客户端等对性能要求较高的应用需求。
 +
 +
 +
*14、有哪些高级接口,怎么申请新版高级接口?
 +
**在[[API文档_V2|V2接口文档]]中接口名称后标注着:{{Icon_adv}} 图标则表示此接口为高级接口。高级接口申请要求应用需要通过文案审核,并无作恶情况发生。其他要求及申请流程见:[[高级接口申请|高级接口申请指南]]。
 +
 +
 +
*15、阅读完迁移指南后仍有问题怎么办?
 +
** a)通过[http://open.weibo.com/qa 开放平台问答系统]快速获得帮助;
 +
** b)将问题通过评论的方式发送到[http://e.weibo.com/u/1870632073 @微博API] 与迁移相关的微博下,我们将一一解答。
 +
 +
 +
*其他问题详见:[[ 接口问题|接口问题FAQ]]。
 +
 +
 +
 +
==V1到V2怎么迁移==
 +
===简述===
 +
*V1迁移到V2主要需要完成OAuth1.0到[[Oauth2|OAuth2.0]]的过度及完成V1原有接口与V2中新接口的对应替换。
 +
 +
 +
===迁移时需要完成的工作===
 +
*1、授权方式的迁移,OAuth1.0升级到[[Oauth2|OAuth2.0]];
 +
*2、阅读迁移注意事项及常见问题解决建议;
 +
*3、新旧接口的迁移,接口调用地址、调用方式、参数、返回值、错误信息处理的代码改造。
 +
 +
 +
==OAuth1.0升级到OAuth2.0==
 +
*1、OAuth2.0简述
 +
**[[Oauth2|OAuth2.0]]是较OAuth1.0更简单更安全的授权方式,同时支持Web,桌面和移动应用。是未来新浪微博开放平台最主要的用户身份验证和授权方式。
 +
 +
 +
*2、迁移前准备
 +
**请先阅读[[Oauth2|OAuth2.0开发指南]]。
 +
**[[Oauth2|OAuth2.0]]授权方式与OAuth1.0相比,引入授权回调页与绑定域名,简化了授权流程,同时也提升了授权的安全性。
 +
 +
**在实现[[Oauth2|OAuth2.0]]授权方式前,针对不同的应用我们需要设置应用的授权回调页或进行域名的绑定,用于获得授权成功后返回的code,再通过code获取access_token。
 +
 +
**使用开发者帐号登录[http://open.weibo.com http://open.weibo.com],进入“我的应用”控制台需要迁移的应用进行设置:
 +
**a)网站接入类
 +
***点击控制台导航“网站信息”,在网站基本信息中查看网站域名。如果您的网站应用还未验证所有权,会提示您进行所有权验证,点击进入验证页面完成所有权验证。Web应用请参考:[[V1_To_V2/web|Web应用迁移指引]] 。
 +
 +
***注意:验证时填写的网站域名即为您的应用的绑定域名。
 +
 +
 +
**b)站内应用
 +
***站内应用已经是[[Oauth2|OAuth2.0]]授权方式,无需做改动。
 +
 +
 +
**c)客户端应用 & 其他应用
 +
***点击控制台导航“应用信息”—> “高级信息”,进行授权回调页或域名的绑定。设置回调页不需要二审,方便您进行测试开发。绑定域名需要进行二审,二审时线上应用不受影响,绑定域名增加应用的安全性,同时该域名下的所有页面都可作为授权回调页。
 +
 +
***注意:客户端也需要设置授权回调页或绑定域名,在程序中以webview的方式进行调用授权页面返回code,具体实现可
 +
*****以参考:[[V1_To_V2/mobile|移动应用迁移指引]] 。 其他客户端可以参考相应SDK:http://open.weibo.com/wiki/SDK 。
 +
 +
 +
*3、OAuth2.0授权实现
 +
**主要流程(请先阅读[[Oauth2|OAuth2.0开发指南]]):
 +
 +
 +
**a)引导需要授权的用户访问如下地址
 +
 +
***https://api.weibo.com/oauth2/authorize?client_id=YOUR_APP_KEY&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI ;
 +
 +
***注意:redirect_uri必须为绑定域名下网页或设置的回调地址。
 +
 +
 +
**b)如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE
 +
 +
***注意:每次返回的code值都是不一样的且在换取access_token后失效。
 +
 +
 +
**c)使用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中。
 +
 +
 +
**d)返回值
 +
***{"access_token":"SlAV32hkKG","remind_in":"3600","expires_in":3600,"uid":"1902538057"}
 +
***注意:[[Oauth2|OAuth2.0]]的access_token较OAuth1.0具有一定的有效期,当access_token过期时需要引导用户重新授权。应用
 +
*****的授权有效期可以访问[[Rate-limiting |接口访问权限说明]]或在[http://open.weibo.com/apps 应用控制台]查看。
 +
 +
 +
**e)使用获得的OAuth2.0 Access Token调用API
 +
***读取接口一般使用GET方式提交,如:
 +
***接口:[[2/statuses/home_timeline|statuses/home_timeline]]
 +
***调用:https://api.weibo.com/2/statuses/home_timeline.json?access_token=SlAV32hkKG&count=20 ;
 +
 +
 +
***写入接口必须使用POST方式提交,如:
 +
***接口:[[2/statuses/upload|statuses/upload]]
 +
***调用:https://upload.api.weibo.com/2/statuses/upload.json
 +
 +
***注意:参数信息放入header及body中,出access_token外,其他参数必须放入body中请求。
 +
***upload请求消息体举例:
 +
 +
****=> Send header, 301 bytes (0x12d)
 +
****POST /2/statuses/upload.json HTTP/1.1
 +
****User-Agent: curl/7.19.4 (i586-pc-mingw32msvc) libcurl/7.19.4 Ope
 +
****nSSL/0.9.8g zlib/1.2.3
 +
****Host: upload.api.weibo.com
 +
****Accept: */*
 +
****Content-Length: 38694
 +
****Expect: 100-continue
 +
****Content-Type: multipart/form-data; boundary=--------------------
 +
****--------8933e7b00565
 +
 +
 +
****<= Recv header, 23 bytes (0x17)
 +
****HTTP/1.1 100 Continue
 +
****=> Send data, 370 bytes (0x172)
 +
****------------------------------8933e7b00565
 +
****Content-Disposition: form-data; name="access_token"
 +
 +
 +
****2.00RQs9XCmlEQDD4fb4b0bfe3Be7ZQE
 +
****------------------------------8933e7b00565
 +
****Content-Disposition: form-data; name="status"
 +
 +
****Test02
 +
****------------------------------8933e7b00565
 +
****Content-Disposition: form-data; name="pic"; filename="psu.jpg"
 +
****Content-Type: image/jpeg
 +
 +
 +
==V1接口迁移到V2接口==
 +
 +
*在实现[[Oauth2|OAuth2.0]]授权后,接下来需要将应用使用的V1版接口对应迁移到V2版接口。此时需要根据新接口的调用地址、调用方式、参数、返回值、错误信息处理来进行代码的改造。
 +
 +
 +
*以下是V2版接口与V1版接口的对应列表,部分旧版接口由于用户投诉或性能等原因已不再提供,同时新版接口提供丰富的高级接口开放优质应用申请,您可以直接在应用控制台中提交高级接口申请。
 +
 +
 +
*此外,SCOPE授权功能、好友分组接口、邀请接口、社交化等接口已经在平台开放计划中,我们将在保证功能、性能及稳定性后适时开放,详细的开放日期请您关注[http://weibo.com/u/1870632073 @微博API]。
 +
*如果现有接口未能满足您的需求,欢迎[http://weibo.com/u/1870632073 @微博API]进行反馈,我们将根据开发者需求强度及微博用户利益权衡适度开放。
 +
 +
 +
<div class="wiki_kit">
 +
 +
{|width="100%" border="0" cellspacing="0" cellpadding="0" class="wiki_table"
 +
<html><colgroup><col class="tbF1"/><col class="tbF2" /><col /></colgroup></html>
 +
!colspan="3" scope="col" |<span id="新旧接口对应表">新旧接口对应表</span>
 +
|-
 +
|style="text-align:center; width: 31%"|新版V2接口
 +
|style="text-align:center;"|对应老版V1接口
 +
|style="text-align:center;"|接口名称
 +
|-
 +
|[[2/statuses/public_timeline|statuses/public_timeline]]
 +
|[[statuses/public_timeline|statuses/public_timeline]]
 +
|获取最新的公共微博
 +
|-
 +
|[[2/statuses/friends_timeline|statuses/friends_timeline]]
 +
|[[statuses/friends_timeline|statuses/friends_timeline]]
 +
|获取当前登录用户及其所关注用户的最新微博
 +
|-
 +
|[[2/statuses/home_timeline|statuses/home_timeline]]
 +
|
 +
|获取当前登录用户及其所关注用户的最新微博
 +
|-
 +
|[[2/statuses/friends_timeline/ids|statuses/friends_timeline/ids]]
 +
|
 +
|获取当前登录用户及其所关注用户的最新微博的ID
 +
|-
 +
|[[2/statuses/user_timeline|statuses/user_timeline]]
 +
|[[statuses/user_timeline|statuses/user_timeline]]
 +
|获取用户发布的微博
 +
|-
 +
|[[2/statuses/user_timeline/ids|statuses/user_timeline/ids]]
 +
|
 +
|获取用户发布的微博的ID {{Icon_new2}}
 +
|-
 +
|[[2/statuses/repost_timeline|statuses/repost_timeline]]
 +
|[[statuses/repost_timeline|statuses/repost_timeline]]
 +
|返回一条原创微博的最新转发微博
 +
|-
 +
|[[2/statuses/repost_timeline/ids|statuses/repost_timeline/ids]]
 +
|
 +
|获取一条原创微博的最新转发微博的ID {{Icon_new2}}
 +
|-
 +
|[[2/statuses/repost_by_me|statuses/repost_by_me]]
 +
|[[statuses/repost_by_me|statuses/repost_by_me]]
 +
|返回用户转发的最新微博
 +
|-
 +
|[[2/statuses/mentions|statuses/mentions]]
 +
|[[statuses/mentions|statuses/mentions]]
 +
|获取@当前用户的最新微博
 +
|-
 +
|[[2/statuses/mentions/ids|statuses/mentions/ids]]
 +
|
 +
|获取@当前用户的最新微博的ID {{Icon_new2}}
 +
|-
 +
|[[2/statuses/bilateral_timeline|statuses/bilateral_timeline]]
 +
|
 +
|获取双向关注用户的最新微博 {{Icon_new2}}
 +
|-
 +
|[[2/statuses/show|statuses/show]]
 +
|[[statuses/show|statuses/show]]
 +
|根据ID获取单条微博信息
 +
|-
 +
|[[2/statuses/querymid|statuses/querymid]]
 +
|
 +
|通过id获取mid
 +
|-
 +
|[[2/statuses/queryid|statuses/queryid]]
 +
|
 +
|通过mid获取id
 +
|-
 +
|[[2/statuses/hot/repost_daily|statuses/hot/repost_daily]]
 +
|
 +
|按天返回热门转发榜
 +
|-
 +
|[[2/statuses/hot/repost_weekly|statuses/hot/repost_weekly]]
 +
|
 +
|按周返回热门转发榜
 +
|-
 +
|[[2/statuses/hot/comments_daily|statuses/hot/comments_daily]]
 +
|
 +
|按天返回当前用户关注人的热门微博评论榜
 +
|-
 +
|[[2/statuses/hot/comments_weekly|statuses/hot/comments_weekly]]
 +
|
 +
|按周返回热门评论榜
 +
|-
 +
|[[2/statuses/count|statuses/count]]
 +
|[[statuses/counts |statuses/counts ]]
 +
|批量获取指定微博的转发数评论数
 +
|-
 +
|[[2/statuses/repost|statuses/repost]]
 +
|[[statuses/repost|statuses/repost]]
 +
|转发一条微博信息
 +
|-
 +
|[[2/statuses/destroy|statuses/destroy]]
 +
|[[statuses/destroy|statuses/destroy]]
 +
|删除微博信息
 +
|-
 +
|[[2/statuses/update|statuses/update]]
 +
|[[statuses/update|statuses/update]]
 +
|发布一条微博信息
 +
|-
 +
|[[2/statuses/upload|statuses/upload]]
 +
|[[statuses/upload |statuses/upload ]]
 +
|上传图片并发布一条微博
 +
|-
 +
|[[2/statuses/upload_url_text|statuses/upload_url_text]]
 +
|
 +
|发布一条微博同时指定上传的图片或图片url {{Icon_adv}}
 +
|-
 +
|[[2/emotions|emotions]]
 +
|[[emotions|emotions]]
 +
|获取官方表情
 +
|-
 +
|[[2/comments/show|comments/show]]
 +
|[[statuses/comments|statuses/comments]]
 +
|获取某条微博的评论列表
 +
|-
 +
|[[2/comments/by_me|comments/by_me]]
 +
|[[statuses/comments_by_me|statuses/comments_by_me]]
 +
|我发出的评论列表
 +
|-
 +
|[[2/comments/to_me|comments/to_me]]
 +
|[[statuses/comments_to_me|statuses/comments_to_me]]
 +
|我收到的评论列表
 +
|-
 +
|[[2/comments/timeline|comments/timeline]]
 +
|[[statuses/comments_timeline|statuses/comments_timeline]]
 +
|获取用户发送及收到的评论列表
 +
|-
 +
|[[2/comments/mentions|comments/mentions]]
 +
|
 +
|获取@到我的评论
 +
|-
 +
|[[2/comments/show_batch|comments/show_batch]]
 +
|
 +
|批量获取评论内容
 +
|-
 +
|[[2/comments/create|comments/create]]
 +
|[[statuses/comment|statuses/comment]]
 +
|评论一条微博
 +
|-
 +
|[[2/comments/destroy|comments/destroy]]
 +
|[[statuses/comment_destroy|statuses/comment_destroy/:id]]
 +
|删除一条评论
 +
|-
 +
|[[2/comments/destroy_batch|comments/destroy_batch]]
 +
|[[statuses/comment/destroy_batch|statuses/comment/destroy_batch]]
 +
|批量删除评论
 +
|-
 +
|[[2/comments/reply|comments/reply]]
 +
|[[statuses/reply|statuses/reply]]
 +
|回复一条评论
 +
|-
 +
|[[2/users/show|users/show]]
 +
|[[users/show|users/show]]
 +
|获取用户信息 {{Icon_new2}}
 +
|-
 +
|[[2/users/domain_show|users/domain_show]]
 +
|
 +
|通过个性域名获取用户信息
 +
|-
 +
|[[2/users/counts|users/counts]]
 +
|
 +
|批量获取用户的粉丝数、关注数、微博数
 +
|-
 +
|[[2/friendships/friends|friendships/friends]]
 +
|
 +
|获取用户的关注列表
 +
|-
 +
|[[2/friendships/friends/in_common|friendships/friends/in_common]]
 +
|
 +
|获取共同关注人列表
 +
|-
 +
|[[2/friendships/friends/bilateral|friendships/friends/bilateral]]
 +
|
 +
|获取双向关注列表
 +
|-
 +
|[[2/friendships/friends/bilateral/ids|friendships/friends/bilateral/ids]]
 +
|
 +
|获取双向关注UID列表
 +
|-
 +
|[[2/friendships/friends/ids|friendships/friends/ids]]
 +
|[[friends/ids|friends/ids]]
 +
|获取用户关注对象UID列表
 +
|-
 +
|[[2/friendships/followers|friendships/followers]]
 +
|[[friendships/show|friendships/show]]、[[friendships/exists|friendships/exists]]
 +
|获取用户粉丝列表
 +
|-
 +
|[[2/friendships/followers/ids|friendships/followers/ids]]
 +
|[[followers/ids|followers/ids]]
 +
|获取用户粉丝UID列表
 +
|-
 +
|[[2/friendships/followers/active|friendships/followers/active]]
 +
|
 +
|获取用户优质粉丝列表
 +
|-
 +
|[[2/friendships/friends_chain/followers|friendships/friends_chain/followers]]
 +
|
 +
|获取我的关注人中关注了指定用户的人
 +
|-
 +
|[[2/friendships/show|friendships/show]]
 +
|[[friendships/exists|friendships/exists]]
 +
|获取两个用户关系的详细情况
 +
|-
 +
|[[2/friendships/create|friendships/create]]
 +
|[[friendships/create|friendships/create]]
 +
|关注某用户
 +
|-
 +
|[[2/friendships/destroy|friendships/destroy]]
 +
|[[friendships/destroy|friendships/destroy]]
 +
|取消关注某用户
 +
|-
 +
|[[2/friendships/remark/update|friendships/remark/update]]
 +
|[[user/friends/update_remark|user/friends/update_remark]]
 +
|更新关注人备注 {{Icon_adv}}
 +
|-
 +
|[[2/account/get_privacy|account/get_privacy]]
 +
|[[account/get_privacy|account/get_privacy]]
 +
|获取隐私设置信息
 +
|-
 +
|[[2/account/profile/school_list|account/profile/school_list]]
 +
|
 +
|获取所有学校列表
 +
|-
 +
|[[2/account/rate_limit_status|account/rate_limit_status]]
 +
|[[account/rate_limit_status|account/rate_limit_status]]
 +
|获取当前用户API访问频率限制
 +
|-
 +
|[[2/account/get_uid|account/get_uid]]
 +
|[[account/verify_credentials|account/verify_credentials]]
 +
|OAuth授权之后获取用户UID(作用相当于旧版接口的 [[account/verify_credentials]])
 +
|-
 +
|[[2/account/end_session|account/end_session]]
 +
|[[account/end_session|account/end_session]]
 +
|退出登录
 +
|-
 +
|[[2/favorites|favorites]]
 +
|[[favorites|favorites]]
 +
|获取当前用户的收藏列表
 +
|-
 +
|[[2/favorites/ids|favorites/ids]]
 +
|
 +
|获取当前用户的收藏列表的ID {{Icon_new2}}
 +
|-
 +
|[[2/favorites/show|favorites/show]]
 +
|
 +
|获取单条收藏信息
 +
|-
 +
|[[2/favorites/by_tags|favorites/by_tags]]
 +
|
 +
|获取当前用户某个标签下的收藏列表
 +
|-
 +
|[[2/favorites/tags|favorites/tags]]
 +
|
 +
|当前登录用户的收藏标签列表
 +
|-
 +
|[[2/favorites/by_tags/ids|favorites/by_tags/ids]]
 +
|
 +
|获取当前用户某个标签下的收藏列表的ID {{Icon_new2}}
 +
|-
 +
|[[2/favorites/create|favorites/create]]
 +
|[[favorites/create|favorites/create]]
 +
|添加收藏
 +
|-
 +
|[[2/favorites/destroy|favorites/destroy]]
 +
|[[favorites/destroy|favorites/destroy]]
 +
|删除收藏
 +
|-
 +
|[[2/favorites/destroy_batch|favorites/destroy_batch]]
 +
|[[favorites/destroy_batch|favorites/destroy_batch]]
 +
|批量删除收藏
 +
|-
 +
|[[2/favorites/tags/update|favorites/tags/update]]
 +
|
 +
|更新收藏标签
 +
|-
 +
|[[2/favorites/tags/update_batch|favorites/tags/update_batch]]
 +
|
 +
|更新当前用户所有收藏下的指定标签
 +
|-
 +
|[[2/favorites/tags/destroy_batch|favorites/tags/destroy_batch]]
 +
|
 +
|删除当前用户所有收藏下的指定标签
 +
|-
 +
|[[2/trends|trends]]
 +
|[[trends|trends]]
 +
|获取某人话题
 +
|-
 +
|[[2/trends/is_follow|trends/is_follow]]
 +
|
 +
|是否关注某话题
 +
|-
 +
|[[2/trends/hourly|trends/hourly]]
 +
|[[trends/hourly|trends/hourly]]
 +
|返回最近一小时内的热门话题
 +
|-
 +
|[[2/trends/daily|trends/daily]]
 +
|[[trends/daily|trends/daily]]
 +
|返回最近一天内的热门话题
 +
|-
 +
|[[2/trends/weekly|trends/weekly]]
 +
|[[trends/weekly|trends/weekly]]
 +
|返回最近一周内的热门话题
 +
|-
 +
|[[2/trends/follow|trends/follow]]
 +
|[[trends/follow|trends/follow]]
 +
|关注某话题
 +
|-
 +
|[[2/trends/destroy|trends/destroy]]
 +
|[[trends/destroy|trends/destroy]]
 +
|取消关注的某一个话题
 +
|-
 +
|[[2/tags|tags]]
 +
|[[tags|tags]]
 +
|返回指定用户的标签列表
 +
|-
 +
|[[2/tags/tags_batch|tags/tags_batch]]
 +
|
 +
|批量获取用户标签
 +
|-
 +
|[[2/tags/suggestions|tags/suggestions]]
 +
|[[tags/suggestions|tags/suggestions]]
 +
|返回系统推荐的标签列表
 +
|-
 +
|[[2/tags/create|tags/create]]
 +
|[[tags/create|tags/create]]
 +
|添加用户标签
 +
|-
 +
|[[2/tags/destroy|tags/destroy]]
 +
|[[tags/destroy|tags/destroy]]
 +
|删除用户标签
 +
|-
 +
|[[2/tags/destroy_batch|tags/destroy_batch]]
 +
|[[tags/destroy_batch|tags/destroy_batch]]
 +
|批量删除用户标签
 +
|-
 +
|[[2/register/verify_nickname|register/verify_nickname]]
 +
|[[account/verify_credentials|account/verify_credentials]]
 +
|验证昵称是否可用
 +
|-
 +
|[[2/search/suggestions/users|search/suggestions/users]]
 +
|
 +
|搜用户搜索建议
 +
|-
 +
|[[2/search/suggestions/statuses|search/suggestions/statuses]]
 +
|
 +
|搜微博搜索建议
 +
|-
 +
|[[2/search/suggestions/schools|search/suggestions/schools]]
 +
|
 +
|搜学校搜索建议
 +
|-
 +
|[[2/search/suggestions/companies|search/suggestions/companies]]
 +
|
 +
|搜公司搜索建议
 +
|-
 +
|[[2/search/suggestions/apps|search/suggestions/apps]]
 +
|
 +
|搜应用搜索建议
 +
|-
 +
|[[2/search/suggestions/at_users|search/suggestions/at_users]]
 +
|
 +
|@联想搜索
 +
|-
 +
|[[2/search/topics|search/topics]]
 +
|[[trends/statuses|trends/statuses]]
 +
|搜索某一话题下的微博 {{Icon_adv}}
 +
|-
 +
|[[2/suggestions/users/hot|suggestions/users/hot]]
 +
|[[users/hot|users/hot]]
 +
|获取系统推荐用户
 +
|-
 +
|[[2/suggestions/users/may_interested|suggestions/users/may_interested]]
 +
|[[users/suggestions|users/suggestions]]
 +
|获取用户可能感兴趣的人
 +
|-
 +
|[[2/suggestions/users/by_status|suggestions/users/by_status]]
 +
|
 +
|根据微博内容推荐用户
 +
|-
 +
|[[2/suggestions/statuses/hot|suggestions/statuses/hot]]
 +
|
 +
|获取微博精选推荐 {{Icon_new2}}
 +
|-
 +
|[[2/suggestions/statuses/reorder|suggestions/statuses/reorder]]
 +
|
 +
|主Feed微博按兴趣推荐排序
 +
|-
 +
|[[2/suggestions/statuses/reorder/ids|suggestions/statuses/reorder/ids]]
 +
|
 +
|主Feed微博按兴趣推荐排序的微博ID
 +
|-
 +
|[[2/suggestions/favorites/hot|suggestions/favorites/hot]]
 +
|
 +
|热门收藏
 +
|-
 +
|[[2/suggestions/users/not_interested|suggestions/users/not_interested]]
 +
|
 +
|不感兴趣的人
 +
|-
 +
|[[2/remind/unread_count|remind/unread_count]]
 +
|[[statuses/unread|statuses/unread]]
 +
|获取某个用户的各种消息未读数 {{Icon_new2}}
 +
|-
 +
|[[2/remind/set_count|remind/set_count]]
 +
|[[statuses/reset_count|statuses/reset_count]]
 +
|对当前登录用户某一种消息未读数进行清零 {{Icon_adv}} {{Icon_new2}}
 +
|-
 +
|[[2/short_url/shorten|short_url/shorten]]
 +
|[[short_url/shorten|short_url/shorten]]
 +
|长链转短链 {{Icon_new2}}
 +
|-
 +
|[[2/short_url/expand|short_url/expand]]
 +
|[[short_url/expand|short_url/expand]]
 +
|短链转长链 {{Icon_new2}}
 +
|-
 +
|[[2/short_url/clicks|short_url/clicks]]
 +
|
 +
|获取短链接的总点击数 {{Icon_new2}}
 +
|-
 +
|[[2/short_url/referers|short_url/referers]]
 +
|
 +
|获取一个短链接点击的referer来源和数量 {{Icon_new2}}
 +
|-
 +
|[[2/short_url/locations|short_url/locations]]
 +
|
 +
|获取一个短链接点击的地区来源和数量 {{Icon_new2}}
 +
|-
 +
|[[2/short_url/share/counts|short_url/share/counts]]
 +
|[[short_url/share/counts|short_url/share/counts]]
 +
|获取短链接在微博上的微博分享数 {{Icon_new2}}
 +
|-
 +
|[[2/short_url/share/statuses|short_url/share/statuses]]
 +
|[[short_url/share/statuses|short_url/share/statuses]]
 +
|获取包含指定单个短链接的最新微博内容 {{Icon_new2}}
 +
|-
 +
|[[2/short_url/comment/counts|short_url/comment/counts]]
 +
|[[short_url/comment/counts|short_url/comment/counts]]
 +
|获取短链接在微博上的微博评论数 {{Icon_new2}}
 +
|-
 +
|[[2/short_url/comment/comments|short_url/comment/comments]]
 +
|[[short_url/comment/comments|short_url/comment/comments]]
 +
|获取包含指定单个短链接的最新微博评论 {{Icon_new2}}
 +
|-
 +
|[[2/short_url/info|short_url/info]]
 +
|
 +
|批量获取短链接的富内容信息 {{Icon_adv}} {{Icon_new2}}
 +
|-
 +
|[[2/notification/send|notification/send]]
 +
|
 +
|给一个或多个用户发送一条新的状态通知 {{Icon_adv}} {{Icon_new2}}
 +
|-
 +
|[[2/common/code_to_location|common/code_to_location]]
 +
|
 +
|通过地址编码获取地址名称 {{Icon_new2}}
 +
|-
 +
|[[2/common/get_city|common/get_city]]
 +
|
 +
|获取城市列表 {{Icon_new2}}
 +
|-
 +
|[[2/common/get_province|common/get_province]]
 +
|
 +
|获取省份列表 {{Icon_new2}}
 +
|-
 +
|[[2/common/get_country|common/get_country]]
 +
|
 +
|获取国家列表 {{Icon_new2}}
 +
|-
 +
|[[2/common/get_timezone|common/get_timezone]]
 +
|
 +
|获取时区配置表 {{Icon_new2}}
 +
|-
 +
|[[2/place/public_timeline|place/public_timeline]]
 +
|
 +
|获取公共的位置动态 {{Icon_adv}}
 +
|-
 +
|[[2/place/friends_timeline|place/friends_timeline]]
 +
|
 +
|获取用户好友的位置动态
 +
|-
 +
|[[2/place/user_timeline|place/user_timeline]]
 +
|
 +
|获取某个用户的位置动态
 +
|-
 +
|[[2/place/poi_timeline|place/poi_timeline]]
 +
|
 +
|获取某个位置地点的动态
 +
|-
 +
|[[2/place/nearby_timeline|place/nearby_timeline]]
 +
|
 +
|获取某个位置周边的动态
 +
|-
 +
|[[2/place/statuses/show|place/statuses/show]]
 +
|
 +
|获取动态的详情
 +
|-
 +
|[[2/place/users/show|place/users/show]]
 +
|
 +
|获取LBS位置服务内的用户信息
 +
|-
 +
|[[2/place/users/checkins|place/users/checkins]]
 +
|
 +
|获取用户签到过的地点列表
 +
|-
 +
|[[2/place/users/photos|place/users/photos]]
 +
|
 +
|获取用户的照片列表
 +
|-
 +
|[[2/place/users/tips|place/users/tips]]
 +
|
 +
|获取用户的点评列表
 +
|-
 +
|[[2/place/users/todos|place/users/todos]]
 +
|
 +
|获取用户的todo列表 {{Icon_adv}}
 +
|-
 +
|[[2/place/pois/show|place/pois/show]]
 +
|
 +
|获取地点详情
 +
|-
 +
|[[2/place/pois/users|place/pois/users]]
 +
|
 +
|获取在某个地点签到的人的列表
 +
|-
 +
|[[2/place/pois/tips|place/pois/tips]]
 +
|
 +
|获取地点点评列表
 +
|-
 +
|[[2/place/pois/photos|place/pois/photos]]
 +
|
 +
|获取地点照片列表
 +
|-
 +
|[[2/place/pois/search|place/pois/search]]
 +
|
 +
|按省市查询地点
 +
|-
 +
|[[2/place/pois/category|place/pois/category]]
 +
|
 +
|获取地点分类
 +
|-
 +
|[[2/place/nearby/pois|place/nearby/pois]]
 +
|
 +
|获取附近地点
 +
|-
 +
|[[2/place/nearby/users|place/nearby/users]]
 +
|
 +
|获取附近发位置微博的人
 +
|-
 +
|[[2/place/nearby/photos|place/nearby/photos]]
 +
|
 +
|获取附近照片
 +
|-
 +
|[[2/place/nearby_users/list|place/nearby_users/list]]
 +
|
 +
|获取附近的人 {{Icon_adv}}
 +
|-
 +
|[[2/place/pois/create|place/pois/create]]
 +
|
 +
|添加地点 {{Icon_adv}}
 +
|-
 +
|[[2/place/pois/add_checkin|place/pois/add_checkin]]
 +
|
 +
|签到
 +
|-
 +
|[[2/place/pois/add_photo|place/pois/add_photo]]
 +
|
 +
|添加照片
 +
|-
 +
|[[2/place/pois/add_tip|place/pois/add_tip]]
 +
|
 +
|添加点评
 +
|-
 +
|[[2/place/pois/add_todo|place/pois/add_todo]]
 +
|
 +
|添加todo {{Icon_adv}}
 +
|-
 +
|[[2/place/nearby_users/create|place/nearby_users/create]]
 +
|
 +
|用户添加自己的位置 {{Icon_adv}}
 +
|-
 +
|[[2/place/nearby_users/destroy|place/nearby_users/destroy]]
 +
|
 +
|用户删除自己的位置 {{Icon_adv}}
 +
|-
 +
|[[2/location/base/get_map_image|location/base/get_map_image]]
 +
|[[base/get_map_image|base/get_map_image]]
 +
|生成一张静态的地图图片
 +
|-
 +
|[[2/location/geo/ip_to_geo|location/geo/ip_to_geo]]
 +
|[[geocode/ip_to_geo|geocode/ip_to_geo]]
 +
|根据IP地址返回地理信息坐标
 +
|-
 +
|[[2/location/geo/address_to_geo|location/geo/address_to_geo]]
 +
|[[geocode/address_to_geo|geocode/address_to_geo]]
 +
|根据实际地址返回地理信息坐标
 +
|-
 +
|[[2/location/geo/geo_to_address|location/geo/geo_to_address]]
 +
|[[geocode/geo_to_address|geocode/geo_to_address]]
 +
|根据地理信息坐标返回实际地址
 +
|-
 +
|[[2/location/geo/gps_to_offset|location/geo/gps_to_offset]]
 +
|
 +
|根据GPS坐标获取偏移后的坐标
 +
|-
 +
|[[2/location/geo/is_domestic|location/geo/is_domestic]]
 +
|
 +
|判断地理信息坐标是否是国内坐标
 +
|-
 +
|[[2/location/pois/show_batch|location/pois/show_batch]]
 +
|
 +
|批量获取POI点的信息
 +
|-
 +
|[[2/location/pois/search/by_location|location/pois/search/by_location]]
 +
|[[pois/round |pois/round ]]
 +
|根据关键词按地址位置获取POI点的信息
 +
|-
 +
|[[2/location/pois/search/by_geo|location/pois/search/by_geo]]
 +
|[[pois/keyword|pois/keyword]]
 +
|根据关键词按坐标点范围获取POI点的信息
 +
|-
 +
|[[2/location/pois/search/by_area|location/pois/search/by_area]]
 +
|[[pois/view|pois/view]]
 +
|根据关键词按矩形区域获取POI点的信息
 +
|-
 +
|[[2/location/pois/add|location/pois/add]]
 +
|[[pois/add_poi|pois/add_poi]]、[[pois/get_poi|pois/get_poi]]
 +
|提交一个新增的POI点信息
 +
|-
 +
|[[2/location/mobile/get_location|location/mobile/get_location]]
 +
|[[loc/get_location|loc/get_location]]
 +
|根据移动基站WIFI等数据获取当前位置信息
 +
|-
 +
|[[2/location/line/drive_route|location/line/drive_route]]
 +
|[[navigation/route|navigation/route]]
 +
|根据起点与终点数据查询自驾车路线信息
 +
|-
 +
|[[2/location/line/bus_route|location/line/bus_route]]
 +
|[[bus/transfer|bus/transfer]]
 +
|根据起点与终点数据查询公交乘坐路线信息
 +
|-
 +
|[[2/location/line/bus_line|location/line/bus_line]]
 +
|[[bus/line|bus/line]]
 +
|根据关键词查询公交线路信息
 +
|-
 +
|[[2/location/line/bus_station|location/line/bus_station]]
 +
|[[bus/station|bus/station]]
 +
|根据关键词查询公交站点信息
 +
|-
 +
|[[location/citycode|location/citycode]]
 +
|
 +
|城市代码对应表
 +
|-
 +
|[[location/citycode_bus|location/citycode_bus]]
 +
|
 +
|公交城市代码表
 +
|-
 +
|[[location/category|location/category]]
 +
|
 +
|分类代码对应表
 +
|-
 +
|[[location/error2|location/error2]]
 +
|
 +
|地理位置信息接口错误代码及解释
 +
|}
 +
 +
 +
{|width="100%" border="0" cellspacing="0" cellpadding="0" class="wiki_table"
 +
<html><colgroup><col class="tbF1"/><col class="tbF2" /><col /></colgroup></html>
 +
!colspan="3" scope="col"|<span id="V2中已废弃或暂未支持的V1接口">V2中已废弃或暂未支持的V1接口</span>
 +
|-
 +
|style="width: 31%"|[[user/statuses/id]]
 +
|根据微博ID和用户ID跳转到单条微博页面
 +
|-
 +
|[[account/update_privacy]]
 +
|设置隐私信息
 +
|-
 +
|[[blocks/create]]
 +
|将某用户加入黑名单
 +
|-
 +
|[[blocks/exists]]
 +
|检测某用户是否是黑名单用户
 +
|-
 +
|[[blocks/blocking]]
 +
|列出黑名单用户(输出用户详细信息)
 +
|-
 +
|[[blocks/blocking/ids]]
 +
|列出分页黑名单用户(只输出id)
 +
|-
 +
|[[account/update_profile_image]]
 +
|更改头像
 +
|-
 +
|[[account/update_profile]]
 +
|更改资料
 +
 +
|}
 +
 +
 +
{|width="100%" border="0" cellspacing="0" cellpadding="0" class="wiki_table"
 +
<html><colgroup><col class="tbF1"/><col class="tbF2" /><col /></colgroup></html>
 +
!colspan="3" scope="col"|<span id="OAuth2">OAuth2([[OAuth2|开发指南]])</span>
 +
|-
 +
|style="width: 31%"|[[oauth2/authorize]]
 +
|请求用户授权Token
 +
|-
 +
|[[OAuth2/access_token|oauth2/access_token]]
 +
|获取授权过的Access Token
 +
|-
 +
|[[oauth2/get_oauth2_token]]
 +
|OAuth1.0的Access Token更换至OAuth2.0的Access Token
 +
|}<html><div id="relat_qa" data="关键词"></div></html>
 +
 +
 +
__NOTOC__

2012年11月7日 (三) 10:16的最后版本

新版接口迁移指南

为什么要迁移到新版接口

  • 全新的新版(V2)接口较旧版(V1)接口具有更丰富的功能、更高效、更规范、更可控等优势,很好地满足了开发者的需求。


  • V1接口使用的OAuth1.0授权方式无法适应进一步的开放,已被各大开放平台弃用,由全新的OAuth2.0授权方式取代。


新版接口较旧版接口的优势

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


  • 2、更高效
    • a)微博、评论、用户等返回值增加trim开关,按需返回数据,减少冗余数据占用带宽,适应移动应用特点;
    • b)微博评论、转发数可以随微博返回值直接返回,无需额外调用接口,减轻程序负担;
    • c)用户返回值增加互粉好友数、是否关注我、是否被我关注等信息,直观地体现用户关系;
    • d)timeline类接口未来将全部增加筛选过滤功能(feature)和应用隔离功能(base_app),可按应用需要筛选和隔离消息流。


  • 3、更规范
    • a)统一参数、返回值字段,全部小写字母,单词和单词之间用“_”链接;
    • b)接口URI,全部采用:域+版本号+资源类+接口名+返回值格式+参数;
    • c)核心字段:微博、评论、用户、关系全部标准化,避免核心字段在不同接口中返回值不同,从而降低开发成本;
    • d)统一的新错误返回值格式及错误码,V2错误码地址:http://open.weibo.com/wiki/Error_code


  • 4、更可控
    • a)将接口分为两级权限:普通、高级,使高级功能接口的权限控制更清晰、透明;
    • b)添加了接口授权管理控制台:接口可以分组打包,并对应用开放授权及接口级别的申请,缩减申请流程。


V1禁止调用时间

  • 1、2012年7月24日,禁止所有“未审核应用”调用V1接口;
  • 2、2012年8月27日,禁止所有用户量在1000以下的“已审核应用”调用V1接口(已审核Xweibo应用暂时不受影响);
  • 3、2012年10月初左右,禁止所有应用调用V1接口,具体时间请关注@微博开放平台


  • 禁止调用V1接口的应用在调用V1接口时会返回:“40109 Oauth Error: consumer_key_refused! ” 错误提示。


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


迁移中常见问题

  • 1、Xweibo组件及应用如何过度到V2版?
    • Xweibo已审核上线应用在10月左右暂时不受影响,需要积极配合Xweibo官方提示进行相应的升级。请关注Xweibo官网:http://x.weibo.com


  • 2、V1中的私信及获取用户信息接口为什么不开放?
    • 私信及涉及隐私的用户信息接口被大量应用滥用,导致大量用户投诉,给平台的开放造成了非常恶劣影响,出于对用户隐私的保护,平台决定不再开放此类导致用户信息泄漏的接口。


  • 3、OAuth2.0授权需要申请吗?
    • OAuth2.0授权无需申请,任何应用都可以使用。
    • 需要额外申请的是授权有效期或客户端验证授权。授权有效期可在应用控制台,接口管理标签下的授权机制选项中进行在线申请,客户端验证授权申请方式参见第二个问题。


  • 4、怎么申请客户端的验证授权(Resource Owner Password Credentials)方式?
    • 因为OAuth2.0的客户端验证授权会获得用户明文密码,所以实行有限开放。


    • 申请条件:
    • a)应用分类属于桌面客户端、手机客户端。
    • b)应用本身已经通过开放平台文案、广场审核,并在广场上展示超过15天。
    • c)应用使用人数在30000以上。
    • d)应用本身功能与新浪微博关联紧密。


    • 满足条件后在应用控制台的“接口管理”-->“授权机制”中申请。


  • 5、手机客户端、PC客户端应用是否需要设置回调页?
    • 需要,使用Web应用的验证授权(Authorization Code)方式的客户端也需要设置授权回调页或绑定域名,在程序中以webview的方式进行调用授权页面返回code,具体实现参考相应的客户端SDK:http://open.weibo.com/wiki/SDK。


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


  • 7、如何申请延长应用的access_token有效期?
    • a)桌面客户端、手机客户端类应用,未审核应用在应用控制台申请审核通过后7天,如需要达到90天有效期,审核通过后
      • 在申请广场审核。
    • b)非客户端类应用,未审核应用在应用控制台申请审核通过后为普通级别7天, 如需申请更高级别,在应用控制台“接口管
      • 理”-->“调用频次”中进行申请。


  • 8、如何计算某个用户的access_token过期时间?
    • a)用户授权时,oauth2/access_token接口返回的expires_in(单位:秒)值就是access_token的生命周期。
    • b)从上述对应表中,找到应用所对应的授权有效期,过期时间 = 用户授权时间 + 授权有效期。



  • 9、access_token过期后怎么处理?
    • access_token过期调用接口时,平台会返回错误码为21332的错误,此时需要引导用户重新进行授权。建议在每次获得用户授权时保存过期时间,在每次调用接口前判断用户access_token是否过期。


    • 引导已授权用户再次授权时,如果此用户为已登录新浪微博状态,则授权页面为“一闪而过”无需用户再点击“授权”按钮,如果想让用户重新登录授权,则在调用authorize接口是传入参数:forcelogin=true,默认不填(授权页一闪而过)此参数相当于forcelogin=false。


  • 10、已上线应用如何进行本地测试?
    • a)应用不含高级权限或高级接口,建议申请一个普通的Appkey进行本地测试;
    • b)应用含高级接口或高级权限,可以考虑绑定hosts指向本地测试代码进行测试。


  • 11、如何将已授权用户从OAuth1.0过度到OAuth2.0授权?
    • 应用授权方式从OAuth1.0迁移到OAuth2.0时,应用的授权用户总数不变,以下是进行用户过度的两个建议:
    • a)直接上线OAuth2.0授权版本,OAuth2.0获取access_token时返回用户的uid,根据此uid判断该用户为老用户或新用
      • 户,新增或更新数据库中用户access_token等信息;
    • b)使用get_oauth2_token接口换取OAuth2.0的access_token,此方法可以免去用户对OAuth2.0第一次授权,适当延长过
      • OAuth2.0的时间以完成a)的实现(对于授权有效期较长或客户端类应用可以考虑此方法)。
      • 注意:做批量换取是需谨慎,同一个OAuth1.0的Access Token只能换取一次(多次调用将返回同一个token),过期时间
          • 从第一次换取的时候计算。


  • 12、迁移时是否需要添加测试帐号?
    • a)测试帐号仅对未审核应用限制,如果您的应用在V1时已经审核通过,则无需添加测试用户。
    • b)如果您使用了未审核的Appkey进行测试,需要您在应用或网站控制台“应用信息”或“网站信息”-->“测试帐号”中添加测试帐
      • 号,未审核应用只有应用创建者与测试帐号才能调用接口。


  • 13、V2版接口返回值为什么仅支持JSON格式不支持XML格式返回?
    • a)接口返回值中可能会含有html等字段,采用XML格式返回时需要对html进行特殊处理,直接影响到平台包装返回值及开
      • 发者解析返回值的效率;
    • b)对于JS等语言在解析复杂的XML难度较高,效率较低;
    • c)XML格式较JSON采用Key-Value的形式有很大冗余,不符合手机客户端等对性能要求较高的应用需求。


  • 14、有哪些高级接口,怎么申请新版高级接口?
    • V2接口文档中接口名称后标注着: 图标则表示此接口为高级接口。高级接口申请要求应用需要通过文案审核,并无作恶情况发生。其他要求及申请流程见:高级接口申请指南


  • 15、阅读完迁移指南后仍有问题怎么办?



V1到V2怎么迁移

简述

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


迁移时需要完成的工作

  • 1、授权方式的迁移,OAuth1.0升级到OAuth2.0
  • 2、阅读迁移注意事项及常见问题解决建议;
  • 3、新旧接口的迁移,接口调用地址、调用方式、参数、返回值、错误信息处理的代码改造。


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,进入“我的应用”控制台需要迁移的应用进行设置:
    • a)网站接入类
      • 点击控制台导航“网站信息”,在网站基本信息中查看网站域名。如果您的网站应用还未验证所有权,会提示您进行所有权验证,点击进入验证页面完成所有权验证。Web应用请参考:Web应用迁移指引
      • 注意:验证时填写的网站域名即为您的应用的绑定域名。


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


    • c)客户端应用 & 其他应用
      • 点击控制台导航“应用信息”—> “高级信息”,进行授权回调页或域名的绑定。设置回调页不需要二审,方便您进行测试开发。绑定域名需要进行二审,二审时线上应用不受影响,绑定域名增加应用的安全性,同时该域名下的所有页面都可作为授权回调页。



    • a)引导需要授权的用户访问如下地址
      • 注意:redirect_uri必须为绑定域名下网页或设置的回调地址。


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


    • c)使用code换取access_token
      • 注意:必须使用POST方式提交,其中client_id=YOUR_APP_KEY&client_secret=YOUR_APP_SECRET可以使用
          • basic方式加入header中。


    • d)返回值
      • {"access_token":"SlAV32hkKG","remind_in":"3600","expires_in":3600,"uid":"1902538057"}
      • 注意:OAuth2.0的access_token较OAuth1.0具有一定的有效期,当access_token过期时需要引导用户重新授权。应用



      • 注意:参数信息放入header及body中,出access_token外,其他参数必须放入body中请求。
      • upload请求消息体举例:
        • => Send header, 301 bytes (0x12d)
        • POST /2/statuses/upload.json HTTP/1.1
        • User-Agent: curl/7.19.4 (i586-pc-mingw32msvc) libcurl/7.19.4 Ope
        • nSSL/0.9.8g zlib/1.2.3
        • Host: upload.api.weibo.com
        • Accept: */*
        • Content-Length: 38694
        • Expect: 100-continue
        • Content-Type: multipart/form-data; boundary=--------------------
        • --------8933e7b00565


        • <= Recv header, 23 bytes (0x17)
        • HTTP/1.1 100 Continue
        • => Send data, 370 bytes (0x172)
        • ------------------------------8933e7b00565
        • Content-Disposition: form-data; name="access_token"


        • 2.00RQs9XCmlEQDD4fb4b0bfe3Be7ZQE
        • ------------------------------8933e7b00565
        • Content-Disposition: form-data; name="status"
        • Test02
        • ------------------------------8933e7b00565
        • Content-Disposition: form-data; name="pic"; filename="psu.jpg"
        • Content-Type: image/jpeg


V1接口迁移到V2接口

  • 在实现OAuth2.0授权后,接下来需要将应用使用的V1版接口对应迁移到V2版接口。此时需要根据新接口的调用地址、调用方式、参数、返回值、错误信息处理来进行代码的改造。


  • 以下是V2版接口与V1版接口的对应列表,部分旧版接口由于用户投诉或性能等原因已不再提供,同时新版接口提供丰富的高级接口开放优质应用申请,您可以直接在应用控制台中提交高级接口申请。


  • 此外,SCOPE授权功能、好友分组接口、邀请接口、社交化等接口已经在平台开放计划中,我们将在保证功能、性能及稳定性后适时开放,详细的开放日期请您关注@微博API
  • 如果现有接口未能满足您的需求,欢迎@微博API进行反馈,我们将根据开发者需求强度及微博用户利益权衡适度开放。


新旧接口对应表
新版V2接口 对应老版V1接口 接口名称
statuses/public_timeline statuses/public_timeline 获取最新的公共微博
statuses/friends_timeline statuses/friends_timeline 获取当前登录用户及其所关注用户的最新微博
statuses/home_timeline 获取当前登录用户及其所关注用户的最新微博
statuses/friends_timeline/ids 获取当前登录用户及其所关注用户的最新微博的ID
statuses/user_timeline statuses/user_timeline 获取用户发布的微博
statuses/user_timeline/ids 获取用户发布的微博的ID
statuses/repost_timeline statuses/repost_timeline 返回一条原创微博的最新转发微博
statuses/repost_timeline/ids 获取一条原创微博的最新转发微博的ID
statuses/repost_by_me statuses/repost_by_me 返回用户转发的最新微博
statuses/mentions statuses/mentions 获取@当前用户的最新微博
statuses/mentions/ids 获取@当前用户的最新微博的ID
statuses/bilateral_timeline 获取双向关注用户的最新微博
statuses/show statuses/show 根据ID获取单条微博信息
statuses/querymid 通过id获取mid
statuses/queryid 通过mid获取id
statuses/hot/repost_daily 按天返回热门转发榜
statuses/hot/repost_weekly 按周返回热门转发榜
statuses/hot/comments_daily 按天返回当前用户关注人的热门微博评论榜
statuses/hot/comments_weekly 按周返回热门评论榜
statuses/count statuses/counts  批量获取指定微博的转发数评论数
statuses/repost statuses/repost 转发一条微博信息
statuses/destroy statuses/destroy 删除微博信息
statuses/update statuses/update 发布一条微博信息
statuses/upload statuses/upload  上传图片并发布一条微博
statuses/upload_url_text 发布一条微博同时指定上传的图片或图片url
emotions emotions 获取官方表情
comments/show statuses/comments 获取某条微博的评论列表
comments/by_me statuses/comments_by_me 我发出的评论列表
comments/to_me statuses/comments_to_me 我收到的评论列表
comments/timeline statuses/comments_timeline 获取用户发送及收到的评论列表
comments/mentions 获取@到我的评论
comments/show_batch 批量获取评论内容
comments/create statuses/comment 评论一条微博
comments/destroy statuses/comment_destroy/:id 删除一条评论
comments/destroy_batch statuses/comment/destroy_batch 批量删除评论
comments/reply statuses/reply 回复一条评论
users/show users/show 获取用户信息
users/domain_show 通过个性域名获取用户信息
users/counts 批量获取用户的粉丝数、关注数、微博数
friendships/friends 获取用户的关注列表
friendships/friends/in_common 获取共同关注人列表
friendships/friends/bilateral 获取双向关注列表
friendships/friends/bilateral/ids 获取双向关注UID列表
friendships/friends/ids friends/ids 获取用户关注对象UID列表
friendships/followers friendships/showfriendships/exists 获取用户粉丝列表
friendships/followers/ids followers/ids 获取用户粉丝UID列表
friendships/followers/active 获取用户优质粉丝列表
friendships/friends_chain/followers 获取我的关注人中关注了指定用户的人
friendships/show friendships/exists 获取两个用户关系的详细情况
friendships/create friendships/create 关注某用户
friendships/destroy friendships/destroy 取消关注某用户
friendships/remark/update user/friends/update_remark 更新关注人备注
account/get_privacy account/get_privacy 获取隐私设置信息
account/profile/school_list 获取所有学校列表
account/rate_limit_status account/rate_limit_status 获取当前用户API访问频率限制
account/get_uid account/verify_credentials OAuth授权之后获取用户UID(作用相当于旧版接口的 account/verify_credentials
account/end_session account/end_session 退出登录
favorites favorites 获取当前用户的收藏列表
favorites/ids 获取当前用户的收藏列表的ID
favorites/show 获取单条收藏信息
favorites/by_tags 获取当前用户某个标签下的收藏列表
favorites/tags 当前登录用户的收藏标签列表
favorites/by_tags/ids 获取当前用户某个标签下的收藏列表的ID
favorites/create favorites/create 添加收藏
favorites/destroy favorites/destroy 删除收藏
favorites/destroy_batch favorites/destroy_batch 批量删除收藏
favorites/tags/update 更新收藏标签
favorites/tags/update_batch 更新当前用户所有收藏下的指定标签
favorites/tags/destroy_batch 删除当前用户所有收藏下的指定标签
trends trends 获取某人话题
trends/is_follow 是否关注某话题
trends/hourly trends/hourly 返回最近一小时内的热门话题
trends/daily trends/daily 返回最近一天内的热门话题
trends/weekly trends/weekly 返回最近一周内的热门话题
trends/follow trends/follow 关注某话题
trends/destroy trends/destroy 取消关注的某一个话题
tags tags 返回指定用户的标签列表
tags/tags_batch 批量获取用户标签
tags/suggestions tags/suggestions 返回系统推荐的标签列表
tags/create tags/create 添加用户标签
tags/destroy tags/destroy 删除用户标签
tags/destroy_batch tags/destroy_batch 批量删除用户标签
register/verify_nickname account/verify_credentials 验证昵称是否可用
search/suggestions/users 搜用户搜索建议
search/suggestions/statuses 搜微博搜索建议
search/suggestions/schools 搜学校搜索建议
search/suggestions/companies 搜公司搜索建议
search/suggestions/apps 搜应用搜索建议
search/suggestions/at_users @联想搜索
search/topics trends/statuses 搜索某一话题下的微博
suggestions/users/hot users/hot 获取系统推荐用户
suggestions/users/may_interested users/suggestions 获取用户可能感兴趣的人
suggestions/users/by_status 根据微博内容推荐用户
suggestions/statuses/hot 获取微博精选推荐
suggestions/statuses/reorder 主Feed微博按兴趣推荐排序
suggestions/statuses/reorder/ids 主Feed微博按兴趣推荐排序的微博ID
suggestions/favorites/hot 热门收藏
suggestions/users/not_interested 不感兴趣的人
remind/unread_count statuses/unread 获取某个用户的各种消息未读数
remind/set_count statuses/reset_count 对当前登录用户某一种消息未读数进行清零
short_url/shorten short_url/shorten 长链转短链
short_url/expand short_url/expand 短链转长链
short_url/clicks 获取短链接的总点击数
short_url/referers 获取一个短链接点击的referer来源和数量
short_url/locations 获取一个短链接点击的地区来源和数量
short_url/share/counts short_url/share/counts 获取短链接在微博上的微博分享数
short_url/share/statuses short_url/share/statuses 获取包含指定单个短链接的最新微博内容
short_url/comment/counts short_url/comment/counts 获取短链接在微博上的微博评论数
short_url/comment/comments short_url/comment/comments 获取包含指定单个短链接的最新微博评论
short_url/info 批量获取短链接的富内容信息
notification/send 给一个或多个用户发送一条新的状态通知
common/code_to_location 通过地址编码获取地址名称
common/get_city 获取城市列表
common/get_province 获取省份列表
common/get_country 获取国家列表
common/get_timezone 获取时区配置表
place/public_timeline 获取公共的位置动态
place/friends_timeline 获取用户好友的位置动态
place/user_timeline 获取某个用户的位置动态
place/poi_timeline 获取某个位置地点的动态
place/nearby_timeline 获取某个位置周边的动态
place/statuses/show 获取动态的详情
place/users/show 获取LBS位置服务内的用户信息
place/users/checkins 获取用户签到过的地点列表
place/users/photos 获取用户的照片列表
place/users/tips 获取用户的点评列表
place/users/todos 获取用户的todo列表
place/pois/show 获取地点详情
place/pois/users 获取在某个地点签到的人的列表
place/pois/tips 获取地点点评列表
place/pois/photos 获取地点照片列表
place/pois/search 按省市查询地点
place/pois/category 获取地点分类
place/nearby/pois 获取附近地点
place/nearby/users 获取附近发位置微博的人
place/nearby/photos 获取附近照片
place/nearby_users/list 获取附近的人
place/pois/create 添加地点
place/pois/add_checkin 签到
place/pois/add_photo 添加照片
place/pois/add_tip 添加点评
place/pois/add_todo 添加todo
place/nearby_users/create 用户添加自己的位置
place/nearby_users/destroy 用户删除自己的位置
location/base/get_map_image base/get_map_image 生成一张静态的地图图片
location/geo/ip_to_geo geocode/ip_to_geo 根据IP地址返回地理信息坐标
location/geo/address_to_geo geocode/address_to_geo 根据实际地址返回地理信息坐标
location/geo/geo_to_address geocode/geo_to_address 根据地理信息坐标返回实际地址
location/geo/gps_to_offset 根据GPS坐标获取偏移后的坐标
location/geo/is_domestic 判断地理信息坐标是否是国内坐标
location/pois/show_batch 批量获取POI点的信息
location/pois/search/by_location pois/round  根据关键词按地址位置获取POI点的信息
location/pois/search/by_geo pois/keyword 根据关键词按坐标点范围获取POI点的信息
location/pois/search/by_area pois/view 根据关键词按矩形区域获取POI点的信息
location/pois/add pois/add_poipois/get_poi 提交一个新增的POI点信息
location/mobile/get_location loc/get_location 根据移动基站WIFI等数据获取当前位置信息
location/line/drive_route navigation/route 根据起点与终点数据查询自驾车路线信息
location/line/bus_route bus/transfer 根据起点与终点数据查询公交乘坐路线信息
location/line/bus_line bus/line 根据关键词查询公交线路信息
location/line/bus_station bus/station 根据关键词查询公交站点信息
location/citycode 城市代码对应表
location/citycode_bus 公交城市代码表
location/category 分类代码对应表
location/error2 地理位置信息接口错误代码及解释


V2中已废弃或暂未支持的V1接口
user/statuses/id 根据微博ID和用户ID跳转到单条微博页面
account/update_privacy 设置隐私信息
blocks/create 将某用户加入黑名单
blocks/exists 检测某用户是否是黑名单用户
blocks/blocking 列出黑名单用户(输出用户详细信息)
blocks/blocking/ids 列出分页黑名单用户(只输出id)
account/update_profile_image 更改头像
account/update_profile 更改资料


OAuth2(开发指南
oauth2/authorize 请求用户授权Token
oauth2/access_token 获取授权过的Access Token
oauth2/get_oauth2_token OAuth1.0的Access Token更换至OAuth2.0的Access Token


文档更新时间: 2012-11-07