Мне нужно получить список результатов из запроса API Google Place. API позволяет получать 20 результатов на страницу, и мне нужны все результаты, поэтому мне нужно go перейти к следующей странице. Следующая страница доступна с токена, указанного в ответе на предыдущий запрос. Я реализовал код ниже:
function request(url){
return fetch(url)
.then((response) => response.json())
.catch((error) => console.log(error))
}
Это моя рекурсивная функция:
export function getListOfActivitiesInACity(city_name,nextPageToken,datas){
const first_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=activity+in+'+city_name+'&key='+ API_TOKEN +'&language=fr'
const next_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?pagetoken='+nextPageToken+'&key='+ API_TOKEN
var url = nextPageToken ===''? first_url : next_url;
return request(url)
.then((data) => {
const newData = [...datas, data];
if(data["next_page_token"] !== undefined){
return getListOfActivitiesInACity(city_name,data["next_page_token"],newData);
}
return newData;
})
}
А затем я вызываю свою функцию и печатаю результаты
var datas=[];
getListOfActivitiesInACity("Lyon",'',datas)
.then(data => {console.log(data);})
Первая итерация выборки работает нормально и дает мне хороший новый URL для следующей выборки (я попробовал это на моем более широком руководстве, и это работает) Но вторая выборка возвращает мне это:
Object {
"html_attributions": Array [],
"results": Array [],
"status": "INVALID_REQUEST",
}
Я действительно не понимаю, почему это не работает, поэтому, пожалуйста, кто-нибудь может помочь Спасибо