*Tips&Tricks [#k14f487f] #contents **API制限とは [#ea9d6287] API制限の内容はこんな感じです。 60分間に70リクエストまで実行可能で、それを超えるリクエストを実行しようとすると、 Rate limit exceeded. Clients may not make more than 70 requests per hour. というエラーが返ってきます。 参考:[観] Twitter の API の実行回数制限が導入されたようです(http://watcher.moe-nifty.com/memo/2007/06/twitter_api_376b.html) API の制限と言っても全 API が制限対象と言うわけではなく、「public_timeline の取得」、「発言の投稿」、「ダイレクトメッセージの送信」の3つは制限から除外されています。 ということで、1時間に70リクエストまでしか受け付けてくれません そこで、Twitでは以下の対応を行いました。 - 今までの、タイムライン取得とダイレクトメッセージの取得タイミングを別途に設定できるようにした - ステータス送信時に取得していたタイムラインの取得をするかどうかを選べるようにした - タイムライン、ダイレクトメッセージ取得後に、次の定時取得用のタイマをリセットするようにした この修正により、「更新時間」60秒、「DM更新時間」600秒とすることで、1時間に66リクエストに抑えられるようになります。 ステータス取得後タイムライン更新した場合、最低4発言は可能になります。 発言数の多い人は、「ステータス更新時にタイムラインを取得する」のチェックをはずせば、ほぼ制限なく発言が可能になります(デフォルトでは、前のバージョンの動作に合わせるため、チェックが入っています)。 というわけで、おすすめの設定は - 更新時間」60秒 - 「DM更新時間」600秒 - 「ステータス更新時にタイムラインを取得する」のチェックをはずす ということになります。 なお、特に制限に引っかかるような使い方をしていないのに、API制限に引っかかってしまう場合は、設定の「更新」タブで「タイムライン取得時にPOSTメソッドを使う」にチェックを入れることで回避できる場合もあります。ただし、この方法は、Twitterで推奨されている使い方ではないので、今後、つかえなくなることもあります。 **POST取得とは [#l656cd5b] 「タイムライン取得時にPOSTメソッドを使う」設定にすると、「現在のところ」API制限に引っかからずにタイムラインを取得することが出来ます。 本来API制限の回数内でのアクセスなのにAPI制限に引っかかってしまうという事態が起こっているために、その対策として付けたものです。 ただし、この方法はイレギュラーなものであり、今後データ取得自体が出来なくなる可能性もあります。最悪、アカウントが停止されるなどと言う事態もあるかもしれません(ま、それはないと思いたいですけど)。あくまでも、自己責任でお願いします。 **マルチアカウントで使う [#n331b900] Twitは多重起動を行うことが出来ます。 別のディレクトリにTwitをインストールしておけば、複数の設定を使い分けることが出来ます。 複数のTwitを起動している時は、Twitのウインドウに「ユーザ名を表示」(設定で有効に出来ます)しておくと便利です。 ただし、同じディレクトリにあるTwitも同時に起動すると、API制限に引っかかる可能性があるので注意してください。