使用 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
时看到的相同。
我正在使用本教程 (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
时看到的相同。