【问题标题】:How to add my key to this google app script?如何将我的密钥添加到这个谷歌应用脚​​本?
【发布时间】:2019-06-13 12:43:07
【问题描述】:

我需要更新这个脚本来传递我的密钥,这样我就不会超过每天的限制。我将如何修改此脚本以传递我的密钥?

(注意:此处可找到 google 课程信息: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
    }

我以前从未使用过谷歌应用程序脚本。

我有这个脚本,并且正在使用“=geo2zip(cell)”从我的谷歌表中调用脚本来获取不完整地址的邮政编码。我的工作表中有〜28k。我已经在我的谷歌控制台和我的账单信息中启用了地理编码 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 的建议解决此问题。

【问题讨论】:

  • 欢迎来到stackoverflow。请描述您尝试了什么以及您在哪里卡住了。另请参阅How do I ask a good question?上的此文档
  • 谢谢@Gustavo 我已经更新了我上面的问题以提供更多信息。

标签: google-apps-script key reverse-geocoding google-geocoding-api


【解决方案1】:

我相信您的问题更多地与 Google API 管理有关,而不是与脚本本身有关。有一种方法可以限制您的密钥的使用量。根据地图平台文档:

管理您的使用成本

管理您使用 Google 地图的费用 平台 API,您可以为任何请求的所有请求设置每日限制 计费 API。

要查看或更改 Geocoding API 的每日计费限额,请执行 以下:

转到 Google Cloud Platform 中的 Geocoding API Quotas 页面 安慰。从项目列表中,选择一个项目。在请求中 部分,在每天的请求行上,单击编辑图标,然后输入 首选的每日计费总配额,最高限额(如果有) 由 Google 指定。

您基本上可以设置每天要允许的请求数,这将避免您超出限制。

更新

您可以使用Maps.setAuthentication(clientId, signingKey) 方法将脚本链接到您的帐户,根据文档,它:

允许使用外部建立的 Maps API for Business 帐户,以利用额外的配额配额。您的客户 ID 和 可以从 Google Enterprise Support Portal 获取签名密钥。 将这些值设置为 null 以返回使用默认配额 津贴。

地图文档链接:https://developers.google.com/apps-script/reference/maps/maps#setAuthentication(String,String)

配额网址:https://console.cloud.google.com/project/_/apiui/apiview/geocoding_backend/quotas?_ga=2.141719605.643331044.1560431279-1498828710.1560431279

文档网址:https://developers.google.com/maps/documentation/geocoding/usage-and-billing

【讨论】:

  • 谢谢阿尔贝托。我已经更新了我的配额。该脚本似乎根本没有连接到我的帐户。所以我认为它给我的限制错误是因为它每天只允许约 200 次没有密钥的更新。然而,我正在使用的其他公式字段正在传递我的密钥,因此在使用它们时我不会遇到任何限制错误。但这些都需要更长的时间才能得到回应。所以,我希望更新脚本来传递我的密钥。你知道我将如何更新脚本以传递我的密钥吗?
  • 我明白你的意思,我发现你可以使用 Maps.setAuthentication(clientId, signingKey) 方法将脚本链接到你的帐户,根据文档,它:“启用外部建立的 Maps API 用于企业帐户,以利用额外的配额配额。您的客户端 ID 和签名密钥可以从 Google 企业支持门户获取。将这些值设置为 null 以返回使用默认配额配额。链接:[developers.google.com/apps-script/reference/maps/…
  • 感谢阿尔贝托!我正在寻找我的客户 ID 和签名密钥。到目前为止,我只能找到我的 API Key 名称和 API Key。我会继续寻找。
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多