2016-01-28 3 views
1

Я хочу получить список популярных событий в Сан-Франциско через ajax-запрос к API Eventbrite. Вот код.Параметры запроса API Eventbrite

var city = 'San Francisco'; 
var query = "token=" + token + "&venue.city=" + city + "&popular=" + true + "&location.within=" + "10mi" 
var $events = $("#events"); 

var settings = { 
    "async": true, 
    "crossDomain": true, 
    "url": "https://www.eventbriteapi.com/v3/events/?" + query, 
    "method": "GET", 
    "headers":{} 
} 

Я получаю результаты из других городов. Как настроить параметры для получения результатов только от Сан-Франциско? Кроме того, я получаю несколько копий одного события. Есть ли способ предотвратить это?

ответ

0

Ваш запрос неверен для API v3: При тестировании вашего запроса я получил ошибки из API Eventbrite. Эти ошибки связаны с использованием неверных параметров запроса. Например, «популярный» не существует как parameter. Обязательно проверяйте свои запросы через свою игровую площадку https://www.eventbriteapi.com/v3/events/search?token= 'YOUR-OAUTH-TOKEN'.

SF Только события: Невозможно установить параметры в запросе Eventbrite для событий только в SF, если вы не включили небольшой радиус поиска вокруг широты и долготы. Этот метод мог бы исключить некоторые популярные события SF. Лучший способ - запросить все события в области SF, а затем манипулировать данными, которые вы возвращаете, отфильтровывая события, чей город-город не Сан-Франциско.

Популярные события: Чтобы действительно получить популярные события, которые вы должны были бы знать, сколько билетов было продано по каждому событию (private data.) Вместо этого мы должны использовать sort_by parameter в нашем первоначальном запросе, чтобы получить «лучший» Мероприятия. К сожалению, «лучший» очень расплывчатый в API, но все, с чем мы должны работать.

Duplicate Events: Учитывая приведенный ниже запрос, вы не получите повторяющиеся события.

Попробуйте ниже метод JQuery AJAX:

const sfSettings = { 
    url: 'https://www.eventbriteapi.com/v3/events/search/', 
    data: {token: 'YOUR-OAUTH-TOKEN', sort_by: 'best', 'location.latitude': 37.7749, 'location.longitude': -122.4194, expand: 'venue'}, 
    crossDomain: true, 
    method: 'GET' 
} 

$.ajax(sfSettings).done(function(eventObject){ 
    // All SF Area Events (Paginated by 50. Will only return first page.) 
    const events = eventObject.events; 
    // Create a new array of events whose venue is specifically in SF 
    const sfEvents = events.filter(function(event){ 
    return event.venue.address.city === 'San Francisco'; 
    }); 
}); 
Смежные вопросы