如何将我的密钥添加到此 google 应用程序脚本?
How to add my key to this google app script?
我需要更新这个脚本来传递我的密钥,这样我就不会超过每天的限制。我将如何修改此脚本以传递我的密钥?
(注意:google class 在此处找到的信息:https://developers.google.com/apps-script/reference/maps/geocoder)
function geo2zip(a) {
var response=Maps.newGeocoder()
.reverseGeocode(lat(a),long(a));
return response.results[0].formatted_address.split(',')[2].trim().split(' ')[1];
}
function lat(pointa) {
var response = Maps.newGeocoder()
.geocode(pointa);
return response.results[0].geometry.location.lat
}
function long(pointa) {
var response = Maps.newGeocoder()
.geocode(pointa);
return response.results[0].geometry.location.lng
}
我以前从未使用过 google 应用程序脚本。
我有这个脚本,我正在使用“=geo2zip(cell)”从我的 google sheet 调用脚本来获取不完整地址的邮政编码。我的 sheet 中有 ~28k。我在我的 google 控制台和我的账单信息中启用了地理编码 api。并创建了我的密钥,但我不确定如何将我的密钥包含在上面的脚本中。
我也尝试过使用以下方法使用我的密钥调用 api。它正在工作,但这导致响应非常缓慢。按照这些响应的速度,我需要 10 天才能完成更新我的 28k 条记录。
CELL M4852-->“https://maps.googleapis.com/maps/api/geocode/xml?address=ADDRESS&key=MYKEY”
下一个单元格-->“=ImportXML(M4852,”/GeocodeResponse/result/formatted_address”)”
脚本响应速度更快,所以我更愿意使用它并传递我的密钥。如果您能提供帮助,请告诉我。
更新:我能够使用 Alberto 在下面添加 Maps.setAuthentication 的建议来解决这个问题。
我认为您的问题与 Google API 管理有关,而不是与脚本本身有关。有一种方法可以限制密钥的使用量。根据地图平台文档:
Manage Your Cost of Use
To manage your cost of use of the Google Maps
Platform APIs, you can set daily limits to all requests to any
billable API.
To view or change daily billable limits for the Geocoding API, do the
following:
Go to the Geocoding API Quotas page in the Google Cloud Platform
Console. From the projects list, select a project. In the Requests
section, on the Requests per day line, click the edit icon, then enter
the preferred total billable daily quota, up to the limit (if any)
specified by Google.
您基本上可以设置每天允许的请求数,这将避免您超出限制。
更新
您可以 link 使用 Maps.setAuthentication(clientId, signingKey)
方法将脚本发送到您的帐户,根据文档,它:
Enables the use of an externally established Maps API for Business
account, to leverage additional quota allowances. Your client ID and
signing key can be obtained from the Google Enterprise Support Portal.
Set these values to null to go back to using the default quota
allowances.
地图文档 Link:https://developers.google.com/apps-script/reference/maps/maps#setAuthentication(String,String)
文档 URL:https://developers.google.com/maps/documentation/geocoding/usage-and-billing
我需要更新这个脚本来传递我的密钥,这样我就不会超过每天的限制。我将如何修改此脚本以传递我的密钥?
(注意:google class 在此处找到的信息:https://developers.google.com/apps-script/reference/maps/geocoder)
function geo2zip(a) {
var response=Maps.newGeocoder()
.reverseGeocode(lat(a),long(a));
return response.results[0].formatted_address.split(',')[2].trim().split(' ')[1];
}
function lat(pointa) {
var response = Maps.newGeocoder()
.geocode(pointa);
return response.results[0].geometry.location.lat
}
function long(pointa) {
var response = Maps.newGeocoder()
.geocode(pointa);
return response.results[0].geometry.location.lng
}
我以前从未使用过 google 应用程序脚本。
我有这个脚本,我正在使用“=geo2zip(cell)”从我的 google sheet 调用脚本来获取不完整地址的邮政编码。我的 sheet 中有 ~28k。我在我的 google 控制台和我的账单信息中启用了地理编码 api。并创建了我的密钥,但我不确定如何将我的密钥包含在上面的脚本中。
我也尝试过使用以下方法使用我的密钥调用 api。它正在工作,但这导致响应非常缓慢。按照这些响应的速度,我需要 10 天才能完成更新我的 28k 条记录。
CELL M4852-->“https://maps.googleapis.com/maps/api/geocode/xml?address=ADDRESS&key=MYKEY” 下一个单元格-->“=ImportXML(M4852,”/GeocodeResponse/result/formatted_address”)”
脚本响应速度更快,所以我更愿意使用它并传递我的密钥。如果您能提供帮助,请告诉我。
更新:我能够使用 Alberto 在下面添加 Maps.setAuthentication 的建议来解决这个问题。
我认为您的问题与 Google API 管理有关,而不是与脚本本身有关。有一种方法可以限制密钥的使用量。根据地图平台文档:
Manage Your Cost of Use
To manage your cost of use of the Google Maps Platform APIs, you can set daily limits to all requests to any billable API.
To view or change daily billable limits for the Geocoding API, do the following:
Go to the Geocoding API Quotas page in the Google Cloud Platform Console. From the projects list, select a project. In the Requests section, on the Requests per day line, click the edit icon, then enter the preferred total billable daily quota, up to the limit (if any) specified by Google.
您基本上可以设置每天允许的请求数,这将避免您超出限制。
更新
您可以 link 使用 Maps.setAuthentication(clientId, signingKey)
方法将脚本发送到您的帐户,根据文档,它:
Enables the use of an externally established Maps API for Business account, to leverage additional quota allowances. Your client ID and signing key can be obtained from the Google Enterprise Support Portal. Set these values to null to go back to using the default quota allowances.
地图文档 Link:https://developers.google.com/apps-script/reference/maps/maps#setAuthentication(String,String)
文档 URL:https://developers.google.com/maps/documentation/geocoding/usage-and-billing