#OpenTween ホームタイムラインのレートリミットの実験。
自動更新を止めた状態で「前データを取得」を繰り返し、HomeLatestTimeline を初回の更新を含む 247 回リクエストしてみた。この時点でステータスバーでは 253/500 の表示になる。取得したツイートはプロモーションを含む 24,016 件。今のところ特にエラーが返る様子はない
#OpenTween ホームタイムラインのレートリミットの実験。
自動更新を止めた状態で「前データを取得」を繰り返し、HomeLatestTimeline を初回の更新を含む 247 回リクエストしてみた。この時点でステータスバーでは 253/500 の表示になる。取得したツイートはプロモーションを含む 24,016 件。今のところ特にエラーが返る様子はない
次にリストタイムラインで試してみる。
同じく自動更新を止めた状態で「前データを取得」を繰り返し、ListLatestTweetsTimeline を 100 回リクエストしてみた。ステータスバーでは 400/500 の表示になり、9,459 件までは取得したが、リストに入れたユーザー数が十分でなく遡れる最古のツイートまで読み込んでしまったためこれ以上の回数を試すことができなかった
検索タブの SearchTimeline は 50回/15分 なので簡単に使い切れてしまう。50 回更新してちょうど 1,000 件取得した
#OpenTween で Twitter のレートリミットの挙動を調べてみた経過:
(条件)
graphql エンドポイントを使用する Recent, Search, List, User のタブを開いた状態で、各エンドポイントが平均50回/15分のペースで呼ばれるように自動更新する設定
(結果)
・各エンドポイントのリクエスト数の総計が 2,106 回になった辺りでレートリミットのエラーが返るようになった
→ 1,000回/日 が上限という噂もあったが一致せず謎
・自動更新されない Favorites もレートリミットのエラーが返るようになった
→ エンドポイント別ではなく、全エンドポイントの合計リクエスト数で判定してそう
・アクティブでないアカウントで試したため、最終的に取得したツイートの総数は 400 件程度
→ 取得件数は関係なさそう(Tweet caps 的な基準ではなさそう)
・レートリミットがリセットされるタイミングは未確認
→ たぶんリセット後の最初のリクエストから24時間じゃないかなと思ってる
> ・レートリミットがリセットされるタイミングは未確認
> → たぶんリセット後の最初のリクエストから24時間じゃないかなと思ってる
昨日起動した時刻のちょうど 24 時間後にレートリミットのエラーが起きなくなったので合ってたっぽい
再度試したら 2,111 回目のリクエストまでは成功していたので、1日あたりのレートリミット上限はこの辺にありそう
こんな感じの機能を作ってるところ #OpenTween
@boju_panda 従来の15分毎のレートリミットとは別に24時間毎のレートリミットが存在しており、この制限に引っ掛かっている可能性があります。
レートリミットの挙動について調べたものを https://m.upsilo.net/@upsilon/111822417985835308 に書いているので、これを参考に更新間隔を調整してみてください。
#OpenTween v3.13.0 から、設定画面の更新間隔ページに OpenTween を 24 時間起動し続けた場合のタイムライン更新回数の目安表示を追加しました。
レートリミットの挙動については https://m.upsilo.net/@upsilon/111822417985835308 が参考になると思います。
OpenTween 以外の公式アプリ等でも閲覧する場合はそれらも加味する必要があるので、少し余裕を持った間隔を設定した方が良いです。
#OpenTween
あと、ステータスバーに各タブの更新回数の表示も追加したので、レートリミットエラーが出た場合は Recent, Favorites, Search, List, User タブの合計値が 2,111 付近になっていないか確かめてみてください。
他のアカウントでは実験してないので人によっては上限が違ったりするかもしれませんが、正確な仕様は不明なのでこれらの値で推測しながら調整するしかないです。