icon

ユーザータイムラインの「返信をさらに表示」を展開する仕組みがない問題。これの対応は難しそう。たぶん検索タブで from: のクエリ書いた方が早い
egg.5ch.net/test/read.cgi/soft

Twitterクライアント「Tween」総合 Part.7
icon

例えば「返信をさらに表示」を自動で展開する仕組みを入れた場合、“たわわベンチマーク”のようなツイートに遭遇するとタブの読み込みが(レートリミットに達するまで)完了しない状態になりかねない

icon

そういやgraphqlの方の検索エンドポイントには言語を指定するパラメータが無いから動かんか。 lang:ja とか付ければ再現できるからこれは直せそう
egg.5ch.net/test/read.cgi/soft

Twitterクライアント「Tween」総合 Part.7
icon

今朝から OpenTween でホームタイムラインの更新ができなくなったらしく、エゴサすると OpenTween 使ってる奴そんなにいたんかってくらい出てくる

icon

/1.1/statuses/home_timeline.json が完全に廃止されたっぽいので、これも graphql の方に移行するかあ

icon

これ直すの忘れてたわ次リリースする時に入れるね
m.upsilo.net/@upsilon/11175009

Web site image
upsilon (@upsilon@m.upsilo.net)
icon

Replyタブが読み込めない問題、というか /statuses/mentions_timeline.json が使えなくなった件は対応できるまで時間が掛かりそう

icon

なんかこれだけ他のエンドポイントとレスポンスの形式が違うというか、API v2 の成り損ないみたいな感じになってる

icon

と思ったけど、なんか一発でテスト通っちゃったので試したい人は↓でどうぞ

/notifications/mentions.json を使用したReplyタブの更新に対応 by upsilon · Pull Request #305 · opentween/OpenTween
github.com/opentween/OpenTween

Web site image
/notifications/mentions.json を使用したReplyタブの更新に対応 by upsilon · Pull Request #305 · opentween/OpenTween
icon

ホームタイムラインのレートリミットの実験。
自動更新を止めた状態で「前データを取得」を繰り返し、HomeLatestTimeline を初回の更新を含む 247 回リクエストしてみた。この時点でステータスバーでは 253/500 の表示になる。取得したツイートはプロモーションを含む 24,016 件。今のところ特にエラーが返る様子はない

icon

次にリストタイムラインで試してみる。
同じく自動更新を止めた状態で「前データを取得」を繰り返し、ListLatestTweetsTimeline を 100 回リクエストしてみた。ステータスバーでは 400/500 の表示になり、9,459 件までは取得したが、リストに入れたユーザー数が十分でなく遡れる最古のツイートまで読み込んでしまったためこれ以上の回数を試すことができなかった

icon

検索タブの SearchTimeline は 50回/15分 なので簡単に使い切れてしまう。50 回更新してちょうど 1,000 件取得した

icon

で Twitter のレートリミットの挙動を調べてみた経過:

(条件)
graphql エンドポイントを使用する Recent, Search, List, User のタブを開いた状態で、各エンドポイントが平均50回/15分のペースで呼ばれるように自動更新する設定

(結果)
・各エンドポイントのリクエスト数の総計が 2,106 回になった辺りでレートリミットのエラーが返るようになった
 → 1,000回/日 が上限という噂もあったが一致せず謎

・自動更新されない Favorites もレートリミットのエラーが返るようになった
 → エンドポイント別ではなく、全エンドポイントの合計リクエスト数で判定してそう

・アクティブでないアカウントで試したため、最終的に取得したツイートの総数は 400 件程度
 → 取得件数は関係なさそう(Tweet caps 的な基準ではなさそう)

・レートリミットがリセットされるタイミングは未確認
 → たぶんリセット後の最初のリクエストから24時間じゃないかなと思ってる

icon

> ・レートリミットがリセットされるタイミングは未確認
>  → たぶんリセット後の最初のリクエストから24時間じゃないかなと思ってる

昨日起動した時刻のちょうど 24 時間後にレートリミットのエラーが起きなくなったので合ってたっぽい

icon

再度試したら 2,111 回目のリクエストまでは成功していたので、1日あたりのレートリミット上限はこの辺にありそう

icon

こんな感じの機能を作ってるところ

OpenTween設定画面の「更新間隔」ページで、タブ種別毎の更新間隔を入力する欄の隣に対応するタブの個数を表示している。また、ページ下部に「graphql エンドポイントのリクエスト回数目安: 1,920 回 / 24 時間」の表示が加わっている
Attach image
icon

@boju_panda 従来の15分毎のレートリミットとは別に24時間毎のレートリミットが存在しており、この制限に引っ掛かっている可能性があります。
レートリミットの挙動について調べたものを m.upsilo.net/@upsilon/11182241 に書いているので、これを参考に更新間隔を調整してみてください。

Web site image
upsilon (@upsilon@m.upsilo.net)
icon

v3.13.0 から、設定画面の更新間隔ページに OpenTween を 24 時間起動し続けた場合のタイムライン更新回数の目安表示を追加しました。
レートリミットの挙動については m.upsilo.net/@upsilon/11182241 が参考になると思います。
OpenTween 以外の公式アプリ等でも閲覧する場合はそれらも加味する必要があるので、少し余裕を持った間隔を設定した方が良いです。

Web site image
upsilon (@upsilon@m.upsilo.net)
icon


あと、ステータスバーに各タブの更新回数の表示も追加したので、レートリミットエラーが出た場合は Recent, Favorites, Search, List, User タブの合計値が 2,111 付近になっていないか確かめてみてください。
他のアカウントでは実験してないので人によっては上限が違ったりするかもしれませんが、正確な仕様は不明なのでこれらの値で推測しながら調整するしかないです。