使用 Google 在 Google 工作表中放置 API

Using Google Places API in Google Sheets

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

  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)}
}

我正在尝试 运行 它在 google sheet 中像这样:

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

它显示“正在加载”,然后 returns 什么也没有。我已经通过将 url 粘贴到浏览器中来仔细检查 url 本身是否有效,并且 returns 结果采用 JSON 格式。我觉得将结果推送到 sheet 有问题,但我找不到

毫无疑问,您复制的代码可以正常工作。在测试您为复制问题而发布的完全相同的代码后,我只在函数中添加了 return 来填充单元格。

查看我有效的确切代码并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 键,它不会 return 任何东西。

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

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