Eventbrite API请求参数

时间:2016-01-28 19:08:28

标签: ajax eventbrite

我希望获得旧金山的热门活动列表 ajax请求Eventbrite API。这是代码。

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":{}
}

我也从其他城市获得了结果。如何设置参数以仅从旧金山获得结果?此外,我获得了单个事件的多个副本。有什么方法可以防止这种情况吗?

1 个答案:

答案 0 :(得分:0)

您的查询对于API v3不正确:在测试您的查询时,我收到了来自Eventbrite API的错误。这些错误是由于使用了不正确的查询参数。例如,“热门”不存在parameter。请务必通过他们的游乐场https://www.eventbriteapi.com/v3/events/search?token='你的OAUTH-TOKEN'测试您的查询。

仅限SF事件:除非您在纬度和经度周围包含较小的搜索半径,否则无法在Eventbrite查询中为仅在SF中的事件设置参数。该方法可能会排除一些流行的SF事件。最好的方法是查询所有SF区域事件,然后通过过滤掉Venue城市不是旧金山的事件来操纵您获得的数据。

热门活动:要真正获得热门活动,您需要知道每个活动已售出的门票数量(private data.)相反,我们需要使用{{3在我们的初始查询中获取“最佳”事件。遗憾的是,“最佳”在API中非常模糊,但我们必须使用它们。

重复事件:鉴于以下查询,您将不会获得重复事件。

尝试以下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';
   });
});