Как использовать categoryId в API поиска мест Foursquare - PullRequest
6 голосов
/ 15 декабря 2011

Я получаю неожиданные результаты от запросов API при включении параметра categoryId.

Например, при использовании следующих параметров для поиска 'The Citizen Public House' в Бостоне, штат Массачусетс, Массачусетс

ll: 42.3489027315987, -71.096134185791
query: citizen 
categoryId: 4bf58dd8d48988d116941735    <== 'bars' 

Результаты включаются, включая места из других категорий, например, «банки»,Что-то не так с параметром categoryId?В документации API он помечен как «экспериментальный».Неправильно ли я его использую?

К вашему сведению: я использую гем quimby для взаимодействия с API foursquare через приложение rails.

Спасибо !!

Ответы [ 3 ]

6 голосов
/ 15 декабря 2011

Если место, которое вы искали, это

Citizen Public House & Oyster Bar

Тогда вы использовали неправильный ID категории :(Категории имеют иерархию, и поиск осуществляется по ней.

В частности, 4bf58dd8d48988d116941735 является категорией баровЭто место - Виски-бар, ID категории: 4bf58dd8d48988d122941735

Почему банки вернулись, не уверен :) Я почти уверен, что при поиске по запросу механизм foursquare заставляет результаты соответствовать запросу, независимо от того,другие фильтры.

Вам следует загрузить все категории и просмотреть дерево категорий, чтобы лучше понять, какой идентификатор использовать.Обратите внимание, вы можете найти категорию Nightlife 4d4b7105d754a06376d81259, в которую включены все столбцы, так как при поиске по запросу вы должны найти то, что ищете (вы также можете попробовать поэкспериментировать с intent=match или просмотреть и радиуса также).

3 голосов
/ 29 августа 2014

Слишком поздно, но я обнаружил, что если вы поставите параметр categoryId непосредственно после ...search? и до параметров аутентификации и версии, он будет работать.

например.search?categoryId=123&client_id=456&client_secret=789&v=20140828

0 голосов
/ 03 июля 2013

Кажется, что все идентификаторы категорий в foursquare одинаковы. Я просто опросил в аэропорту и позволил ему дать мне свой categoryID, а затем сделал то же самое для баров. У них обоих был один и тот же ID категории.

Я нашел один другой ID категории (4eb1bc533b7b2c5b1d4306cb Airport Lounge), и при использовании его в качестве фильтра он возвращал только результаты с этим идентификатором.

...