在构建脚本以在Google API中查找位置并返回相关数据时遇到麻烦

时间:2019-09-18 22:19:53

标签: google-apps-script google-sheets google-api

我正在为Google表格中的业务列表填写数据,包括地址,URL,电话号码等。

我去过这个网站,其他人都在看脚本来调用Google Places API。我已经弄清楚(我认为),我需要首先获取Place_ID,然后可以再次调用API以获取所有详细信息。我已经在该论坛的另一个答案中复制并粘贴了脚本,但该脚本已挂在第8行上。

  return placeId.candidates[0].place_id;

在此行中,看来我复制的代码引用的是“候选人”,我不知道这是什么。

我想将Place_id与其他已知数据一起写入行中的单元格。例如:A2:T2是所有已知数据。在U2中,我放置了=locid(G2),其中G2是完整地址。我想(我认为)U2获取place_id,然后再获取随后的列以接收其他请求的数据。

function locId(text) {
  var API_KEY = 'AIzaSyDAI35g3ocior056QvNrjgY_lLs02Jkyg4';
  var baseUrl = 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json';
  var queryUrl = baseUrl + '?input=' + text + '&inputtype=textquery&key=' + API_KEY;
  var response = UrlFetchApp.fetch(queryUrl);
  var json = response.getContentText();
  var placeId = JSON.parse(json);
  return placeId.candidates[0].place_id;
  Logger.log(placeId)
}


function GET_DETAILS(id) {
  var API_KEY = 'AIzaSyDAI35g3ocior056QvNrjgY_lLs02Jkyg4';
  var fields = 'name,rating,formatted_phone_number,formatted_address,photo';
  var baseUrl = 'https://maps.googleapis.com/maps/api/place/details/json?placeid=';
  var queryUrl = baseUrl + id + '&fields=' + fields + '&key='+ API_KEY;

  if (id == '') {
    return 'Give me a Google Places URL...';
  }

  var response = UrlFetchApp.fetch(queryUrl);
  var json = response.getContentText();
  var place = JSON.parse(json).result;

  return [[ place.name,
            place.formatted_phone_number,
            place.rating,
            place.formatted_address,
           place.photo
          ]];
}

我得到的错误是:

  

TypeError:无法从未定义中读取属性“ place_id”。 (第8行)。

我假设这里的undefined是“候选人”

我不确定该代码的结构如何实现我想要的。 我确信这很简单,因为作为一个完全的菜鸟,我对所要查找的内容只有很少的了解。感谢您的帮助,以帮助我了解其工作原理。

0 个答案:

没有答案