Итак, я пытаюсь получить все события для определенной области, используя API-интерфейс bandintown.Например, я заинтересован в организации всех предстоящих концертов в Сан-Франциско, Калифорния.Ключевым моментом здесь является то, что мне нужны все события, а не определенный исполнитель.
Используя некоторый код, который я нашел в stackoverflow, я немного подправил его, чтобы получать данные только из CA.Вот код:
// HTTP GET call to BandsInTown API
function httpGetAsync(theUrl, callback) { //theURL or a path to file
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState == 4 && httpRequest.status == 200) {
var data = JSON.parse(httpRequest.responseText);
if (callback) {
callback(data);
}
}
else {
//alert("error loading JSON doc");
}
};
httpRequest.open('GET', theUrl, true);
httpRequest.send(null);
}
//extracts data from api for each artist
function parseEvent(artist) {
var url = "https://rest.bandsintown.com/artists/" + artist + "/events?app_id=9c42d4dc9c1397201a4e3dc4d0bb840c&venue.region=" + region;
httpGetAsync(url, function(data) {
var numEvents = Object.keys(data).length;
console.log(numEvents)
//var events = [];
for (var j = 0; j < numEvents; j++) {
if (data[j].venue.region == 'CA'){
document.write(data[j].venue.name + "-> ");
document.write("LAT:" + data[j].venue.latitude + " " + "LNG:" + data[j].venue.longitude);
document.write("ARTIST: " + data[j].artists[3].name);
document.write("DATE: " + data[j].datetime);
document.write("Region:" + data[j].venue.region);
document.write(" " + j + " ");
}
}
});
}
var artists = ["Twenty One Pilots", "Atmosphere", "Vince Staples", "STRFKR", "Rainbow Kitten Surprise", "Mac Demarco", "Hippo Campus", "Drake", "John Legend", "Rihanna", "Flying Lotus", "MGMT", "Jason Derulo", "M83", "Bon Iver", "Childish Gambino","The Del McCoury Band","Dawes"];
var region = "CA";
for (var i = 0; i < artists.length; i++) {
parseEvent(artists[i]);
document.write(" ---NEXT ARTIST--- ");
}
Итак, я вставил массив 'Artist' только для того, чтобы все заработало и посмотрел, смогу ли я успешно подключиться к API - но в конечном итоге я бы хотел настроить это натянуть все события, а не только конкретных художников.Я еще не нашел каких-либо примеров этого, и документация bandstown невелика.Может кто-то указать мне верное направление?Большое спасибо!