第20行: | 第20行: | ||
===开发者如何正确面对频次限制=== | ===开发者如何正确面对频次限制=== | ||
− | <div | + | <div class="wiki_txtJ"> |
首先,微博开放接口技术原理上是一个HTTP轮询(polling)协议,不是即时推送(realtime push)协议。因此即使增大刷新频率也无法完全达到即时获得最新信息效果。根据经验,更新频率我们建议3-5分钟/次为宜。 | 首先,微博开放接口技术原理上是一个HTTP轮询(polling)协议,不是即时推送(realtime push)协议。因此即使增大刷新频率也无法完全达到即时获得最新信息效果。根据经验,更新频率我们建议3-5分钟/次为宜。 | ||
第30行: | 第30行: | ||
===未通过审核应用的测试账号限制=== | ===未通过审核应用的测试账号限制=== | ||
− | <div | + | <div class="wiki_txtJ"> |
针对未通过审核的,开发中的应用,我们除了以上的频次限制外,将还有测试账号的额外请求限制。每个未通过审核的应用只能授权15个测试账号来请求接口。除此之外的账号通过该应用,都无法请求接口。当应用通过审核,该限制自动取消。 | 针对未通过审核的,开发中的应用,我们除了以上的频次限制外,将还有测试账号的额外请求限制。每个未通过审核的应用只能授权15个测试账号来请求接口。除此之外的账号通过该应用,都无法请求接口。当应用通过审核,该限制自动取消。 | ||
+ | |||
另外,微博非常重视用户阅读内容流的体验,因此基于不骚扰正常用户阅读微博内容,通过测试账号在测试状态下请求发微博、发评论等写内容的操作时,虽然可以请求成功、内容也可以正常发出,但只有测试帐号可以看到该测试内容,该测试内容不会实际分发到非测试帐号的内容流里。 | 另外,微博非常重视用户阅读内容流的体验,因此基于不骚扰正常用户阅读微博内容,通过测试账号在测试状态下请求发微博、发评论等写内容的操作时,虽然可以请求成功、内容也可以正常发出,但只有测试帐号可以看到该测试内容,该测试内容不会实际分发到非测试帐号的内容流里。 | ||
+ | |||
测试账号设置在 <span style="color:#FF7D13;">“我的应用>编辑应用属性>测试账号”</span> 里可以找到。 | 测试账号设置在 <span style="color:#FF7D13;">“我的应用>编辑应用属性>测试账号”</span> 里可以找到。 | ||
第39行: | 第41行: | ||
+ | ===应用接口访问封禁=== | ||
− | <div | + | <div class="wiki_txtJ"> |
− | + | 我们希望开发者都能遵循请求限制和微博开放平台的开发者协议,基于用户主动行为正常的访问接口,而不是通过机器人程序、或者非用户主动行为调用接口,甚至大量抓取微博的用户数据。 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | 因此,过度的调用微博开放接口,会导致你的应用/IP被微博开放平台的安全机制识别为机器人程序、或者恶意抓取用户数据等违反微博开发者协议的情况。从而造成该应用的接口访问权限被封禁,造成所有开放接口的请求都会被限制。 | ||
+ | </div> | ||
2015年3月26日 (四) 11:06的版本
接口访问频次权限
频次限制
微博开放接口限制每段时间只能请求一定的次数。限制的单位时间有每小时、每天;限制的维度有单授权用户和单IP;部分特殊接口有单独的请求次数限制。例如:
- • 一个应用内单授权用户每小时只能请求微博开放接口n次;
- • 一个应用内单授权用户每天累计只能请求微博开放接口m次;
- • 一个IP地址每小时只能请求微博开放接口x次;
- • 发微博接口单授权用户每小时只能请求微博开放接口y次;
其中n、m、x、y的具体数值,微博开放平台将采用应用质量评估系统,实现智能评估应用质量,质量高的应用相应的这些数值就高,也就是请求限制小。因此限制值不固定,不同的应用有不同的限制,取决于应用自身的质量。
开发者如何正确面对频次限制
首先,微博开放接口技术原理上是一个HTTP轮询(polling)协议,不是即时推送(realtime push)协议。因此即使增大刷新频率也无法完全达到即时获得最新信息效果。根据经验,更新频率我们建议3-5分钟/次为宜。
API客户端可以智能控制请求频率,比如最近几次更新都没获取到数据情况下可以适当将间隔时间延长。当一小时内剩余次数多时候可以适当将更新加快。当剩余请求数偏小时,客户端通过延长自己的更新频率控制不超过上限。另外要适当留一些空余指标,防止用户手工执行一些操作产生的调用导致超出上限。
未通过审核应用的测试账号限制
针对未通过审核的,开发中的应用,我们除了以上的频次限制外,将还有测试账号的额外请求限制。每个未通过审核的应用只能授权15个测试账号来请求接口。除此之外的账号通过该应用,都无法请求接口。当应用通过审核,该限制自动取消。
另外,微博非常重视用户阅读内容流的体验,因此基于不骚扰正常用户阅读微博内容,通过测试账号在测试状态下请求发微博、发评论等写内容的操作时,虽然可以请求成功、内容也可以正常发出,但只有测试帐号可以看到该测试内容,该测试内容不会实际分发到非测试帐号的内容流里。
测试账号设置在 “我的应用>编辑应用属性>测试账号” 里可以找到。
应用接口访问封禁
我们希望开发者都能遵循请求限制和微博开放平台的开发者协议,基于用户主动行为正常的访问接口,而不是通过机器人程序、或者非用户主动行为调用接口,甚至大量抓取微博的用户数据。
因此,过度的调用微博开放接口,会导致你的应用/IP被微博开放平台的安全机制识别为机器人程序、或者恶意抓取用户数据等违反微博开发者协议的情况。从而造成该应用的接口访问权限被封禁,造成所有开放接口的请求都会被限制。
- 接口频次限制常见问题请参考 微博开放平台问答系统