レスポンス & エラー

レスポンス

すべてのレスポンスは概ね次のようになります:

{
  "meta": {
    "code": 200,
     ...errorType and errorDetail...
  },
  "notifications": {
     ...notifications...
  },
  "response": {
     ...results...
  }
}

errorType はアプリケーション開発者向けの詳細な情報です。以下に示すエラーコードを処理することで、適切なエラーメッセージをユーザに表示左折ことができます。 必要に応じて追加の type を追加する場合があります。 リクエストが成功した場合でも、非推奨な type が返ってくる場合があります。

meta セクションには、開発者がデバッグする際に役立つ追加情報を提供するメッセージも含まれます。

特定のリクエストには、チェックインやほかのユーザアクションに基づくトップレベルの項目としての通知も含まれます。

JSONP を用いて、リクエストに callback=XXX を追記すると XXX(レスポンス)というレスポンスが返ってきます。 JSONP の場合、つねにステータスコード 200 を返すため(例外的に 500 番台の場合もあります)、ブラウザはコードでレスポンスの処理を行えますが、実際の HTTP ステータスコードは meta レスポンスの code から取得できます。

応答の内容は、API リクエストで渡す m パラメータによって異なる場合があります。 詳細な情報は、 バージョンと国際化 のドキュメントを参照ください。

エラー

Foursquare は可能な限り問題の一般的なクラスを示すのに適切な HTTP ステータスコードを使用します。 このステータスコードは meta レスポンスの code セクションで繰り返されます。

400 (Bad Request) パラメータが無効か、必須パラメータが欠けています。OAuth トークンが指定されていない場合やリソース ID が正しく指定されていない場合も該当します。
401 (Unauthorized) OAuth トークンが無効です。
403 (Forbidden) リクエストしようとした情報を参照できません。例えば、友達でないユーザに関するすべての情報を参照しようとした場合に発生します。
404 (Not Found) エンドポイントが存在しません。
405 (Method Not Allowed) GET のみのエンドポイントで POST しているか、またはその逆の操作を行なっています。
409 (Conflict) リクエストを完了できませんでした。レスポンスに含まれる情報を使用してリクエストを変更し、再びリクエストを行います。
500 (Internal Server Error) Foursquare のサーバが不調です。おそらくリクエストは有効ですが、あとで再試行する必要があります。

さらなる詳細は errorType に記述されています。以下のいずれかになります。

errorType ステータスコード 説明
invalid_auth 401 OAuth トークンが提供されていないか無効です。
param_error 400 必要なパラメータが欠けているか不正です。パス内のリソース ID が正しくない場合にも使用されます。
endpoint_error 404 リクエストしようとしたパスが存在しません。
not_authorized 403 認証は成功していますが、プライバシー制限のため情報を見ることを許可されていません。
rate_limit_exceeded 403 時間あたりのレート制限を超えています。
quota_exceeded 429 一日あたりのコールクォータを超えています。
deprecated 200 リクエストに関する何らかの廃止された機能を使用しているか、レスポンスフォーマットが変更されている場合があります。
server_error 場合による サーバ側で問題が発生しています。status.foursquare.com で状態を確認してみてください。
other 場合による ほかのエラーが発生しています。

エラーには errorDetail フィールドが含まれ、開発者向けの追加情報が記述されています。 場合によってサーバの errorMessage を含む場合があります。これはクライアントがユーザに直接表示するためのローカライズされた文字列です。