新浪微博开放平台API的调用和TWITTER接口一样,都是受限的,以小时为单位进行限定。
他有两个限制原则
1.用户不登录基于IP的限制,每小时1000次
2.用户登录了基于用户的限制,每小时1000次
如果应用是用户不登录的那么就是对IP进行限制,建议登录登录了才有办法突破瓶颈,否则免谈
新浪给出了具体的限定规则
http://open.t.sina.com.cn/wiki/index.php/Rate-limiting?retcode=0
开发者可以使用rate_limit_status接口查看调用频率
rate_limit_status接口文档
http://open.t.sina.com.cn/wiki/index.php/Account/rate_limit_status
接口返回如下信息
Array ( [remaining_hits] => 999 [hourly_limit] => 1000 [reset_time_in_seconds] => 2717 [reset_time] => Tue Dec 14 17:00:00 +0800 2010 )
分别代表
剩余数量 999 次,
每小时限制 1000 次,
计数器重置剩余时间 2717 秒,
下次重置时间 17点。
这样的调用频率对非授权类的小型应用来说就已经不够用了,最简单的办法就是采用多帐号,多APP_KEY的办法,等于是做一个帐号轮询
首先多注册几个微博帐号,存入数组,每次随机调用一个,这样很容易就使得限制达到3000,
$wb_id = array('weiboid1@gmail.com|password', 'weiboid3@gmail.com|password', 'weiboid3@gmail.com|password');
list($wb_name, $wb_password) = explode("|", $wb_id[array_rand($wb_id)]);
用同样的办法再罗列几个APP_KEY的话重复组合,那么就更多了,比如用2个APP_KEY,3个帐号,限制就可以达到6000。
我本人用了3个APP_KEY,4个帐号,每小时1.2万的量,足够了。
另外说一个快速注册微博帐号的办法
第一步,
去gmail注册一个长帐号,多长呢?反正越长越好,一个原则字母长度超过你想要注册的微博账户数量
比如 asfwefsagasgfasddasfasdg@gmail.com
第二步,
用这个帐号去新浪注册
第一次用 asfwefsagasgfasddasfasdg@gmail.com
第二次用 a.sfwefsagasgfasddasfasdg@gmail.com
第三次用 as.fwefsagasgfasddasfasdg@gmail.com
....
以此类推,这样只要一个邮箱可以注册多个新浪微博ID。不需要来回重复注册邮箱。
下面是官方对访问频率的限制: