[[PageNavi(SideBar)]] このドキュメントはTwitterの公式発表によるものではない部分が含まれています。調査を行い判明した事項が後に変更されている場合もあります。 == API制限とは何ですか? Twitterが負荷軽減などのために、タイムライン取得、Fav追加、書き込みなど、主にAPI操作に関して設けている一定の制限です。この制限に到達すると、一定時間経過するまでの間APIによる操作が不可能になります。 === 現在かかっているAPI制限にはどのようなものがありますか? 取得系と送信系に大別されます。取得系は、主に読み取り操作に対してかかる制限、送信系はサーバに対してのデータ送信についてかかる制限です。アカウントと使用しているIPアドレスを1組として使用回数がカウントされ、規制されます。 また、検索に関する取得系のAPI制限が存在します。 ==== 取得系 タイムライン取得系API(Recent/Reply/!DirectMessage)を含む、データ取得系API の1時間当たりの回数制限。一般的に「API制限」と呼ばれる場合はこれを指すことが多いです。検索系のAPI使用回数は含まれません。 ==== 送信系 * ステータス書き込みAPIの回数制限。投稿回数が多くなった場合に一定の時間投稿ができなくなります。 * ステータス書き込みAPIの内容による制限。連続して全く同じ文字列の投稿を行った場合、2回目以降の書き込みが反映されません。文字列を変えて投稿した場合は規制対象にならず反映されます。 * Fav追加APIの回数制限。制限回数に到達すると、一定時間Fav追加が出来なくなります。 ==== 検索系 検索結果を取得するAPIに対する1時間あたりの回数制限。IPアドレス単位でカウントされます。 これ以外にも、短時間に大量のAPIを発行した場合は規制を受けることがあります。また、取得系APIにも規制対象外のものがあります。 このように、送信系ではAPI/Webの別なく制限がかかります。このような理由もあり、Tweenでの発言投稿はWeb/Apiのモードに関係なく常にAPIを使用します。 === どの程度の規制がかかっているのですか? 調査で分かった規制は次の通りです。 ==== 取得系APIの制限 アカウント+IPアドレスの組み合わせでカウントされます。1時間当たり150回。1時間ごとにリセットされます。回数は負荷状況により変動するといわれています。 ==== 送信系APIの制限 * ステータス書き込みAPIの回数制限 1時間当たり125回。リセットされるまでの時間は明らかになっていません。Twitter側の都合で、40~60回程度で規制がかかってしまうこともあるようです。 * ステータス書き込みAPIの内容制限 直前に投稿した文字列と同一でない場合には規制はかかりません。(直近10回の投稿内容まで見ている?) * Fav追加APIの回数制限 24時間当たり250Fav。 24時間ごとにリセットされます。 また、1日に投稿できる数にも制限があるようです。 公式には、以下のように発表されています。 * 通常発言 1000投稿/日 * ダイレクトメッセージ 250投稿/日 ==== 検索系APIの制限 IPアドレス単位でカウントされます。1時間当たり150回。1時間ごとにリセットされます。 === 取得系APIの制限はPOSTメソッドで回避できるんじゃないですか? いいえ。2009/4/9の修正で、POSTメソッドによるタイムライン取得系APIの発行はできなくなりました。POSTメソッドで取得系APIを発行すると、「Bad Request」エラーになります。(取得系APIの制限回数を使い切ったときと同じ動作) === だいたいはわかりました。でもTweenだと関係ないですよね? いいえ、そんなことはありません。Web取得モードでも書き込みやFollowersリスト取得、Fav結果厳密チェックなどの機能ではAPIを使用していますし、API取得モードを使用した場合はタイムライン取得でもAPIを使用します。 * Web取得モードでは、Followersリスト取得、Fav結果厳密チェックにおいて取得系APIの回数制限が適用されます。 * API取得モードでは、タイムライン取得、Followersリスト取得、Fav厳密チェックなど取得系の機能全てに取得系API回数制限が適用となります。 * 検索系は常にAPIを使用します。 === TweenはAPI取得とWeb取得のどちらのモードを使えばいいんですか? 最終的には使用するユーザーの判断になりますが、どちらが適しているかを判断する基準を挙げておきます。 * TwitterはAPIの使用を推奨しています。 * Twitterの利用規約には、スクレイピング(=Webモード)を禁止する内容が含まれています。 <API取得モードの使用基準> * 同時に他のTwitterクライアントを使用していない。 * Webがタイムアウトなどで正常に動作しない。 * API系クライアントではデータが取得できるが、Webでは発言が抜けているように見える。 <Web取得モードの使用基準> * 複数のクライアントを併用している。 * 遅延であとから現れてきた発言も取り逃がしたくない。 * API系クライアントが正常に動作しない、またはAPI系クライアントで発言が抜ける。 * 取得系APIの制限に引っかかるのが嫌。 * 発言したら必ずもれなく@返信もチェックしたい。 ==== API制限にひっかからないように気をつけること <API取得モード編> * API発行回数回数を制限内に抑えるように、取得間隔を間引いてください。 * 取得発言を増やしたい場合は、標準取得件数を増やします。 * API制限に引っかかりそうな場合は、発言時のタイムライン取得をしないようにしてください。 <Web取得モード編> * Fav結果厳密チェックを無効にします。 * 片思いユーザーリストの取得は、可能な限り差分取得を使用します。 * 複数アカウントでの使用の場合は、できるだけ別のフォルダへTweenをコピーし、ひとつのTweenでアカウントを切り替えて使用しないようにします。ひとつのTweenでアカウントを切り替えて使用するとFollowersリストキャッシュが再構築され、API消費量が大きくなります。 * 片思い色分け表示が不要な場合は無効にします。 [[PageNavi(SideBar)]] [[include(GAds)]]