2013-05-23 10 views
-1

Мне нужен способ поиска через eventbrite api прошлых событий, организованных организатором, которые являются частными, но мне также нужно иметь возможность ограничить диапазон дат. Я не нашел жизнеспособного решения для этого поиска. Я предполагаю, что метод organizer_list_events api будет предпочтительным, но параметры запроса не соответствуют диапазону дат, и я получаю FAR слишком много возвратов.Параметры диапазона дат Eventbrite API для organizer_list_events

ответ

0

У меня возникли некоторые подобные проблемы. Я отправил вопрос, чтобы получить ответ о разборе часового пояса. Вот код, который я использую, чтобы получить даты и исключить любые события до сегодняшнего дня (к сожалению, как вы сказали, я все еще получаю все отправленное мне и обрабатывая все стороны клиента)

Обратите внимание, что это элемент управления AngularJS, но код использует API-интерфейс EventBrite javascript.

функция EventCtrl ($ http, $ scope) {
$ scope.events = []; $ scope.noEventsDisplay = "Загрузка событий ...";

Eventbrite({'app_key': "EVC36F6EQZZ4M5DL6S"}, function(eb){ 

    // define a few parameters to pass to the API 
    // Options are listed here: http://developer.eventbrite.com/doc/organizers/organizer_list_events/ 
    //3877641809 
    var options = { 
     'id' : "3588304527", 

    }; 

    // provide a callback to display the response data: 
    eb.organizer_list_events(options, function(response){ 
     validEvents = []; 

     var now = new Date().getTime(); 
     for(var i = 0; i<response.events.length; i++) 
     { 
      var sd = response.events[i].event.start_date; 
      var ed = response.events[i].event.end_date; 

      var parsedSD = sd.split(/[:-\s]/); 
      var parsedED = ed.split(/[:-\s]/); 

      var startDate = new Date(parsedSD[0], parsedSD[1]-1, parsedSD[2], parsedSD[3], parsedSD[4], parsedSD[5]); 
      var endDate = new Date(parsedED[0], parsedED[1]-1, parsedED[2], parsedED[3], parsedED[4], parsedED[5]); 

      if(endDate.getTime()<now) 
       continue; 

      response.events[i].event.formattedDate = date.toDateString(); 
      validEvents.push(response.events[i]) 
     } 
     if(validEvents.length == 0) 
     { 
      $scope.$apply(function(scope){scope.noEventsDisplay = "No upcoming events to display, please check back soon.";}); 
     } 
     else 
     { 
      $scope.$apply(function(scope){scope.noEventsDisplay = "";}); 
     } 
     $scope.$apply(function(scope){scope.events = validEvents;}); 

     //$('.event_list').html(eb.utils.eventList(response, eb.utils.eventListRow)); 
    }); 
}); 

}