【发布时间】:2018-02-13 07:16:33
【问题描述】:
请原谅我打破这个,但这确实是一个权限问题,而不是一个用例。我觉得。
我在这里找到了两个单独的线程,它们与使用地名、城市和州从 places api 中提取地址有关。 (Retrieving location address based on place name and city in Google Spreadsheet)。我今天在办公室试了一下,效果很好。我把它展示给了几位同事,但是当他们离开时,我在我正在处理的电子表格的列下添加了公式栏,我最终得到了#ERROR! (TypeError:无法从未定义中读取属性“formatted_address”。(第 8 行)。
我在家里用不同的帐户和密钥再次尝试了它(因为我在办公室的原件仍然返回错误并且它再次正常工作。我再次使用单元格拖动来填充我的电子表格中的函数,这一次,一次 5 行,当我到达第 76 行时发生了同样的事情。我认为这可能是因为我没有在函数或工作表中启用场所 API,启用了 API,看起来问题已解决,但它在第 83 行又死了。
所以现在我有点困惑。代码和工作表显然很好,我的权限也是如此,因为工作表中的所有内容 did 之前工作过,但我现在显示错误!在不到 15 分钟前显示地址的所有单元格上,除了我尝试使用在第 83 行的第 4-82 行上运行良好的相同功能之外,什么都没有改变……这破坏了一切。
除了启用我需要的地方 api 以便在短时间内或有限数量的记录(在 1000 条记录/天上限下)进行这项工作之外,是否还有一些超出 stackoverflow 建议和代码范围的内容?
-斯科特
Script ----
function mapAddress(place, city, state) {
var API_KEY = '<My Key>';
var url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?
query=' + place + ' ' + city + ' ' + state + '&key=' + API_KEY;
var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
obj = JSON.parse(json);
addr = obj.results[0].formatted_address;
return addr;
}
【问题讨论】:
-
呃,不,您还没有达到使用上限,Places API 每 24 小时为您提供 1000 次调用,或者如果您通过向他们注册信用卡来“验证您的身份”,您的第一个每天有 150,000 个 请求是免费的。
-
...一些(其中许多)API 也有速率限制。我无法快速找到 Places API 的限制,但您也不太可能达到这个限制。 (例如,Gmail API 的限制是'"每秒不超过 250 次调用"`...) (More info)
-
为了让别人帮助你,你必须分享你的代码和更多关于你想要做什么、为什么、你能走多远以及你做什么的信息我试过了。查看“minimal reproducible example”以及 Jon Skeets 很棒的tips。您可以随时edit您的问题提供更多信息。哦 - 还有:“欢迎来到 Stack Overflow!”
-
@ashleedawg 感谢 JonSkeet 的提示。
-
您的身份验证了吗?如果没有,您每天只有 1000 个请求,但 textsearch 需要 10 个请求,因此您每天只有 100 个 textsearch 请求。
标签: excel google-apps-script google-places-api google-developers-console