我正在使用本教程(https://scrapediary.com/find-local-leads-with-google-places-api-and-sheets/)将Google Places 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)}
}
我正在尝试像这样在Google工作表中运行它:
=placeSearch("Golf Course","51.4977836","-0.1522502","20000","i_put_my_api_key_here")
并且显示“正在加载”,然后不返回任何内容。我已经仔细检查了网址本身是否可以正常工作,方法是将其粘贴到浏览器中,并以JSON格式返回结果。我觉得将结果推到工作表上有问题,但我找不到
毫无疑问,您复制的代码正在运行。在测试您发布以复制问题的相同代码后,我仅添加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
手动访问时看到的相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句