新浪微博開放平臺API訪問頻率限制解決方法
新浪微博開放平臺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');
list($wb_name, $wb_password) = explode(" |", $wb_id[array_rand($wb_id)]);< p>
'weiboid1@gmail.com|password', 'weiboid3@gmail.com|password');
list($wb_name, $wb_password) = explode(" |", $wb_id[array_rand($wb_id)]);< p>
list($wb_name, $wb_password) = explode(" |", $wb_id[array_rand($wb_id)]);< p>
用同樣的辦法再羅列幾個APP_KEY的話重複組合,那麼就更多了,比如用2個APP_KEY,3個帳號,限制就可以達到6000。
我本人用了3個APP_KEY,4個帳號,每小時1.2萬的量,足夠了。
另外說一個快速註冊微博帳號的辦法
第一步,
去gmail註冊一個長帳號,多長呢?反正越長越好,一個原則字母長度超過你想要註冊的微博賬戶數量
'weiboid1@gmail.com|password', 'weiboid3@gmail.com|password');
list($wb_name, $wb_password) = explode(" |", $wb_id[array_rand($wb_id)]);< p>比如 [email protected]
第二步,
用這個帳號去新浪註冊
第一次用 [email protected]
第二次用 [email protected]
第三次用 [email protected]
....
以此類推,這樣只要一個郵箱可以註冊多個新浪微博ID。不需要來回重複註冊郵箱。