新浪微博開放平台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。不需要來回重復注冊郵箱。
下面是官方對訪問頻率的限制: