koogawa blog

iOS、Android、foursquareに関する話題

2017/8/22 から Foursquare API の Rate Limits ルールが変わったよ

TL;DR

  • 2017/8/22 までに開発者アカウントを認証しない場合、1日に呼び出せるAPIの回数が 1,000 回に制限される
  • 開発者アカウントを認証すればこの回数が 100,000 回に増える
  • ログイン不要の userless requests は対象外(呼び出せる回数に変更なし)

認証は https://ja.foursquare.com/developers/verify から行える。(クレジットカードが必要。課金されることはないとのことだが自己責任で)

はじめに

今年の6月に foursquare asia を名乗るアカウントから「Foursquareの開発者のアカウントを認証してください」というメールが届きました。

f:id:koogawa:20170824001835p:plain

・ ・ ・

なんだか日本語があやしい🤔

さらに、クレジットカードの登録も必要になるとのことなので、しばらく様子を見ることにしました。

アプリが機能しなくなる

8/23 の夜、Foursquare API を利用している私のアプリが動いていないことに気付きます。

「あのメールは本物だったのか…!」

慌てて API のレスポンスを調べてみると

HTTP/1.1 429 Too Many Requests
X-Cache-Hits:
0
Tracer-Time:
2
Content-Length:
134
X-RateLimit-Limit:
0
X-RateLimit-Remaining:
0

が返ってきていました。どうやら、1日1,000リクエストの制限に達してしまったようです。

ちなみに、1,000リクエストというのは、ユーザ一1人あたりのリミットではなく、アプリ全体のリミットです。例えば100人ユーザーがいるアプリの場合、ひとり1日10回しかAPIを呼び出せない計算になります。(これはキツイ)

あらためて公式ドキュメントを見てみると、

On August 22, 2017, if you have not verified your account, all of your existing apps will be subject to a call quota of 1,000 calls per day. You will still be able to verify your account at any time to receive 100,000 calls per day for one primary app.

の行がいつの間にか追記されていました。昨日ぐらいからこのルールが適用されたようですね。(CHANGELOGには無かったぞ!)

ちなみに、ログイン不要で使える userless requests は対象外のようです。つまり、

https://api.foursquare.com/v2/venues/search?ll=40.7,-74&
client_id=CLIENT_ID&client_secret=CLIENT_SECRET&v=YYYYMMDD

のように、oauth_token を使わずに API を利用しているアプリは何の影響もありません。

開発者アカウントを認証してみる

取り急ぎ、クレジットカードを登録して開発者アカウントを認証してみました。

Rate Limits を読む限り、次のリセット時刻(midnight UTC と書かれている)が来るまで制限は解除されないようなので、ひたすら待ちたいと思います。

アプリ利用者の皆様にはご迷惑をお掛けいたしますが、復旧まで今しばらくお待ちいただけますようお願いいたします。

2017.8.24 9:00:制限が解除されました!