8

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

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

確かに、これはすべてのクライアントに影響を与えるわけではありません。これを回避する方法についてのアイデアはありますか?

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

前もって感謝します

4

2 に答える 2

4

Twitter を扱うときは、現在のリクエスト数を追跡​​する必要があります。

ただし、Twitter は 304 Not Modified のカウントを落とさないようです (少なくとも私が最後に対処したときはそうではありませんでした)。そのため、HTTP キャッシュの通常の使用と実際の要求を壊すものがないことを確認してください。 1時間あたりが上がります。

twitter は apache の mod_gzip のバグに悩まされており、gzip されていないエンティティのコンテンツ エンコーディングとは異なることを反映するように e-tag を変更する際に不正な形式になっていることに注意してください (これは正しいことです。実装の単なるバグです)。このため、Twitter から gzip されたコンテンツを受け入れることは、304 を送信しないことを意味します。これにより、リクエスト数が増加し、多くの場合、gzip を使用することによる効率の向上が損なわれます。

したがって、gzip を受け入れている場合 (Web ライブラリはデフォルトで受け入れている可能性があります。Fiddler などのツールで何が表示されるかを確認してください。 HTTP を扱っているので、Java Web ライブラリの詳細はわかりません)、それをオフにしてみて、改善されるかどうかを確認してください。

于 2010-08-08T14:21:03.593 に答える
1

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

于 2010-08-22T00:12:38.617 に答える