0

foursquare api php を使用する

ナイトライフのカテゴリで会場を検索しています:

$params = array("near"=>"92101", "radius"=>"800", "intent"=>"checkin",
                "categoryId"=>"4d4b7105d754a06376d81259", "limit"=>"50");

$venues = $foursquare->GetPublic("venues/search", $params);

期待どおりに動作します...ちょっと。問題は、バーとしてサブカテゴリに分類されたレストランが、私の返品制限を埋めていることです。そのため、その検索では、実際のナイトライフの会場がいくつかしか得られない場合があります。特定のカテゴリを持つ会場を省略できると非常に役立ちます. 50 のナイトライフ施設を取得できますが、食品とラベル付けされたものは取得できません。

省略機能を見落としていることを期待して、あちこち検索し、検索エンドポイントのページを読み直しています。助けはありますか?

4

1 に答える 1

0

同じ問題が発生しました (異なるカテゴリ タイプ)

私たちが最終的に行ったことは、特定のカテゴリでいくつかの検索を実行することです. categoryId フィールドはカンマで区切られた複数のカテゴリを受け入れるため、複数のカテゴリ ID を使用して最大 3 つの検索を実行する場合がありました。

したがって、単一のカテゴリを要求する場合、リクエストは次のようになります (「バー」ではなく、ランダムなナイトライフ カテゴリをいくつか選択しただけです)。

$params = array("near"=>"92101", "radius"=>"800", "intent"=>"checkin",
                "categoryId"=>"4bf58dd8d48988d11f941735,4bf58dd8d48988d121941735,...", "limit"=>"50");

そして、一般的なナイトライフで別のリクエストを行います

$params = array("near"=>"92101", "radius"=>"800", "intent"=>"checkin",
                "categoryId"=>"4d4b7105d754a06376d81259", "limit"=>"50");

そして、結果をマージします。

このソリューションでは、次の 2 つの点に注意してください。

  1. 会場には複数のカテゴリがある場合があるため (おそらく)、複数の検索から重複する結果が得られる場合があります (既にわかっているように)。複数の結果を処理することを忘れないでください。最初にすべての結果をスキャンし、フォースクエア ID に従って一意の結果を保持してから、処理を開始しました。
  2. このソリューションは、foursquare API ではうまく拡張できません - 40 回の検索を行うことはできません.. (ただし、それなしで必要なものを取得する方法は他にないため、ここでソリューション全体をまだ書いています)
于 2012-05-27T07:34:12.417 に答える