質問

Java Twitterアプリ(Twitter4J APIを使用)を使用しています。アプリを作成しましたが、現在のユーザーのタイムライン、ユーザーのプロファイルなどを表示できます。

ただし、アプリを使用すると、Twitterクライアントに設定された150のリクエストが150件のリクエスト制限を非常に迅速に超えているようです(開発者は特定のアカウントでこれを350に増やすことができますが、他のユーザーでは解決しません)。

確かに、これはすべてのクライアントに影響を与えておらず、これを回避する方法に関するアイデアはありますか?

何が要求としてカウントされるか知っている人はいますか?たとえば、ユーザーのプロファイルを表示すると、ユーザーオブジェクト(Twitter4J)をロードしてから、ScreenName、ユーザー名、ユーザー説明、ユーザーステータスなどを取得してJSONオブジェクトに入力します。これは、オブジェクトを取得するための1回の呼び出しですまたは、すべてのuser.get ...呼び出しを含めることはいくつかありますか?

前もって感謝します

役に立ちましたか?

解決

Twitterを扱う際に、現在のリクエスト数が何であるかを追跡する必要があります。

ただし、Twitterは変更されていない304のカウントを落とさないようです(少なくとも私が最後に対処したのは少なくともそうではありませんでした)。そのため1時間あたりが上がります。

TwitterはApacheのmod_gzipのバグに苦しんでいることに注意してください。電子タグは、コンテンツエンコードが非Gziptedエンティティとは異なることを反映するように変更する際に変更されます(これは正しいことです、実装のバグだけです)。このため、TwitterからGZIPTコンテンツを受け入れると、304が送信されることはなく、要求カウントが増加し、多くの場合、GZIPを使用する効率の向上が損なわれます。

したがって、GZIPを受け入れている場合(デフォルトでWebライブラリがそうすることができます。Fiddlerのようなツールで見ることができるものを確認してください。 HTTPを扱うので、Java Webライブラリの詳細がわかりません)、それをオフにしてみて、それが物事を改善するかどうかを確認してください。

他のヒント

Twitterのサーバーからのほぼすべての種類の読み取り(つまり、HTTP Getを呼び出すものはすべて)がリクエストとしてカウントされます。ユーザーのタイムライン、リツイート、ダイレクトメッセージ、ユーザーデータの取得はすべて、それぞれ1つの要求としてカウントされます。 API制限に対してカウントせずにサーバーから読み取る唯一のTwitter APIコールは、レート制限ステータスを確認することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top