как получить идеально данные из Google-API - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь получить данные из API мест Google (написано на JSON). Каждый результат имеет одну страницу с большинством 20 результатов. если есть еще результаты, у вас будет var с именем Next_token. Следующий токен - это ссылка на следующую страницу с результатами. если нет, то это не объявлено. Я пытался сделать это без успеха на 100%.

Я немного новичок с ES5 / 6 на JS. Поэтому я попытался получить первую страницу и после этого зацикливания, пока больше нет результатов. Я код я вырезать все, что не имеет значения.

function getdatafirsttry(url) {
  fetch(url, {
      method: 'get'
    })
    .then(response =>
      response.json())
    .then(data => {
        next_token = data.next_page_token;

        if (next_token !== undefined) {
          url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=32.0333332,34.7666636&radius=1500&type=restaurant&key=...&fields=opening_hours,photos,rating.json&pagetoken=' + next_token;
          toContinue = true;
        } else {
          toContinue = false
        }
      }
      //Next page token
      function alltogheter(url) {
        getdatafirsttry(url);
      }
      getdatafirsttry(url);

1 Ответ

0 голосов
/ 30 сентября 2019

Псевдокод немного больше, чем в реальном JS, но вот концепция:

const yourGoogleMapsFunction = async (params you need, nextToken, listOfPlaces) => {

let options = {
    method: 'GET',
    uri: "https://maps.googleapis.com/maps/api/nearbysearch/json",
    qs : {
        key: process.env.GOOGLE_API_KEY,
        pageToken: ...,
        radius: ...,
        location: ...
        ...
    },
    json: true
};

let response = await rp(options);

if (response && response.status === "OK" && response.results && response.results.length > 0) {
    listOfPlaces.push(... the results);
    yourGoogleMapsFunction(params you need, response.results...token, listOfPlaces);
}
};

вам нужно вызывать его с {} как listOfPlaces, который в конечном итоге также будет содержать все места

рассмотреть ограничение до максимального значения в рекурсивном вызове

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...