2

PHP を使用して Web サイトに配信し、MySQL でツイートをキャッシュしたい多数の Twitter ユーザーがいます。ただし、API にアクセスするたびに、レート制限の問題に困惑しているようです。私がすべてのユーザーに行うすべてのリクエストは、リクエストとしてカウントされるようです。これは当然のことです。

他のサイト*がこれとまったく同じことを成功させていることに気付きました。彼らはどのようにこれを回避していますか、単にホワイトリストに登録されているだけですか、それとも私が見逃しているテクニックがありますか?

* http://www.twackle.com/NFL/Aaron-Rodgers_1/tweets

4

3 に答える 3

1

ストリーミング APIは、探しているものであり、より具体的にはフィルターメソッドです。フィルターは、最小特権レベルで、アプリを承認することなくリアルタイムで 5,000 人のユーザーをフォローできます。また、この方法を使用して最大 400 のキーワードを追跡できます。

過去のツイートも必要な場合は REST API から取得する必要があります (ストリーミング API のcountパラメーターはここではあまり役に立ちません)。ただし、REST 経由でユーザーの最新の 3200 ツイートしか取得できないためです。 API を使用すると、 countパラメータ値 200を渡し、それに応じてページングすることで、 statuses/user_timelineへの 16 回の呼び出しで、利用可能なすべてのツイート履歴をほぼ埋め戻すことができます。

http://api.twitter.com/1/statuses/user_timeline.json?screen_name=barackobama&count=200&page=2 http://api.twitter.com/1/statuses/user_timeline.json?screen_name=barackobama&count=200&page=3 http://api.twitter.com/1/statuses/user_timeline.json?screen_name=barackobama&count=200&page=4

単一の Twitter アカウントごとに 1 時間あたり 350 回の通話がある場合、1 時間あたり約 22 人の完全なユーザー タイムラインを埋め戻すことができます。

実装側では、おそらくPHP のストリーミング API クライアント インターフェイスであるPhirehoseに関心があるでしょう。

于 2011-04-28T03:46:38.407 に答える
0

ツイートを取得する前に、まず認証を試みます。レート制限を増やす必要があります

于 2011-04-27T13:37:14.337 に答える
0

複数の user_timelines を組み合わせる簡単な方法は、Twitter リストを作成してGET /:user/lists/:id/statusを使用することです。その 1 つの API リクエストで、リストにあるすべてのユーザーからの最新のツイートが返されます。

于 2011-04-28T05:13:56.157 に答える