【问题标题】:Using Google Places API in Google Sheets在 Google 表格中使用 Google Places API
【发布时间】:2020-12-08 15:01:38
【问题描述】:

我正在使用本教程 (https://scrapediary.com/find-local-leads-with-google-places-api-and-sheets/) 将数据从 google 地方 API 抓取到 google 表格中。我完全复制了代码:

  var output = [ ["Name", "Place ID", "Latitude", "Longitude", "Types"]]
  var url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?types=food&location=51.4977836,-0.1522502&radius=200&key=AIzaSyBtepY6mCTkHr3m4UCacxSkePkli5yEbCM";
  var response = UrlFetchApp.fetch(url)
  payload = JSON.parse(response)
  for (var x = 0; x < payload['results'].length; x++){
    var inner = [ payload['results'][x]['name'], payload['results'][x]['place'],payload['results'][x]['latitude'],payload['results'][x]['longitude'],payload['results'][x]['types']]
    output.push(inner)}
}

我正在尝试在这样的谷歌表格中运行它:

=placeSearch("Golf Course","51.4977836","-0.1522502","20000","i_put_my_api_key_here")

它显示“正在加载”,然后什么也不返回。我已经通过将它粘贴到浏览器中仔细检查了 url 本身是否有效,它以 JSON 格式返回结果。我觉得将结果推送到工作表有问题,但我找不到它

【问题讨论】:

    标签: google-sheets google-places


    【解决方案1】:

    毫无疑问,您复制的代码正在运行。在测试您发布的用于复制问题的完全相同的代码后,我只在函数中添加了return 来填充单元格。

    查看我的确切代码,该代码有效并以表格形式返回数据。

    function placesAPI(keyword,latitude,longitude,radius,api_key,depth) {
      var output = [ ["Name", "Place ID", "Latitude", "Longitude", "Types"]]
      var url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?types=food&location=51.4977836,-0.1522502&radius=200&key=AIzaSyBtepY6mCTkHr3m4UCacxSkePkli5yEbCM";
      var response = UrlFetchApp.fetch(url)
      payload = JSON.parse(response);
      for (var x = 0; x < payload['results'].length; x++){
        var inner = [ payload['results'][x]['name'], payload['results'][x]['place'],payload['results'][x]['latitude'],payload['results'][x]['longitude'],payload['results'][x]['types']]
        output.push(inner)}
      return(output); // added this code to put the value on the cell
    }
    

    在函数调用中,需要先使用url中的api键建立连接。我在测试中已经确认,如果你在第一个函数调用中使用了其他 api 键,它不会返回任何内容。

    =placesAPI("Golf Course","51.4977836","-0.1522502","20000","AIzaSyBtepY6mCTkHr3m4UCacxSkePkli5yEbCM",20)

    之后,它应该返回下面相同的输出。与我们手动访问url 时看到的相同。

    【讨论】:

    • 非常感谢!!!我是初学者,非常感谢您的帮助!
    • 我很高兴它成功了@emilyc,不客气。如果您觉得它对您有用,也请随意点赞。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 2016-01-09
    • 2015-03-18
    相关资源
    最近更新 更多