TwitterAPI の X-Rate-Limit-Remaining が取得できない?

制限情報

TwitterAPI にはアクセス回数に制限がありますが(たとえば、15分に180回までのような)、その情報はレスポンス・ヘッダで確認できます。

ヘッダから以下のキー名称で情報を取得します。

  • X-Rate-Limit-Remaining : アクセス可能な残りの回数
  • X-Rate-Limit-Reset     : アクセス回数がリセットされる時間

python ではこんな感じ

小文字でも動いてしまう

ところで、このキー名称は、なぜか分かりませんが、すべて小文字にしても情報を取得できます。

  • X-Rate-Limit-Remaining x-rate-limit-remaining
  • X-Rate-Limit-Reset      x-rate-limit-reset

Twitter のサイト を見ると各単語の先頭が大文字になっているので、前者が正解だと思いますが、ときどきネットで、すべて小文字でアクセスするサンプルを見かけます。

もちろん、それはそれで動くのですが、ちょっと気になります。なぜかと言うと、

x-rate-limit-remaining が入ってない現象が

以前、大量のツイートをダウンロードするために TwitterAPI を何百回も呼び続けるというプログラムを作ったのですが(こちら)、その際、小文字で x-rate-limit-remaining と書くと keyError(値が取得できないことを意味する)が、ごく稀にですが発生しました。

つまり、レスポンス・ヘッダに x-rate-limit-remaining がセットされていない、という理由で怒られたわけです。レスポンスを作るのは Twitter 側ですから、こちらではどうしようもなく・・・

試しに、キー名称を先頭大文字の X-Rate-Limit-Remaining にしたところ、keyError は出なくなりました。

くわしく調べたわけではないのですが、先頭大文字にしたほうが安全ではないかという 2016年6月時点の情報です。

キー名称を先頭大文字の X-Rate-Limit-Remaining にしたところ、keyError の頻度が減りましたが、やはり、入っていないことがたまにあります。

対策は、こちらを参考にしてください。
x-rate-limit-remaining が入ってない現象が

コメントはお気軽に