<目次>
(1) Twitter APIのRate Limit Exceedエラー(code – 88)を回避するための簡易的な対策について
(1-1) 対策①:APIの使用回数に閾値を設ける
(1-2) 対策②:「APIの残量」と「API使用予定量」を比較して閾値判定
(1-3) 対策③:レコード数「0件」時の無駄なAPIコールをしない
(1) Twitter APIのRate Limit Exceedエラー(code – 88)を回避するための簡易的な対策について
Twitter APIのRate Limit Exceedエラー(code – 88)を回避するために、私が実践したいくつかの対策をご紹介致します。今回ご紹介するものは「どれもシンプルで簡単に実践できる」もののみをご紹介しているので、初心者の方でも実践しやすいものになります。
(1-1) 対策①:APIの使用回数に閾値を設ける

(1-2) 対策②:「APIの残量」と「API使用予定量」を比較して閾値判定
- //エンドポイントを指定してリミット情報(RateLimitStatus型のインスタンス)を取得
- RateLimitStatus status = ratelimits.get([エンドポイントのURL]);
- //エンドポイントの使用可能残数(直近15分枠)⇒分子
- remain_user = status.getRemaining();
- //エンドポイントの使用可能総数⇒分母
- total_user = status.getLimit();
(図132)「APIの残量の取得」の例
「API使用予定量」は今まさに操作しているユーザがどれくらいAPIを使用するか?の情報です。例えばフォロワーが1000人の人がAPI「GET followers/list」をコールした場合、1回のクエリでAPIを最小5コール分消費します(1ページをMax200件にした場合)。なので、この例での「API使用予定量」は「GET followers/list」(Max200件/1コール)を5コール使う予定になります。
あるユーザのフォロワー数、フォロー数であれば以下のようなメソッドを作って簡単に取得できるので、その戻り値を比較に使います。
(例)
- //# (D)指定したIDのフォロワー数を取得
- public int getFollowerCount(String userid) {
- int follower_count = 0;
- try {
- //# フォロワーの一覧を出したい対象のユーザ情報
- User user = twitter.showUser(userid);
- follower_count = user.getFollowersCount();
- } catch (TwitterException e) {
- e.printStackTrace();
- }
- System.out.println("# [FollowerInfo.getFollowerCount] フォロワー件数取得: " + follower_count);
- return follower_count;
- }

(1-3) 対策③:レコード数「0件」時の無駄なAPIコールをしない
