【问题标题】:How can I use a client ID and secret to access the Google Maps JS API, instead of an API key?如何使用客户端 ID 和密码来访问 Google Maps JS API,而不是 API 密钥?
【发布时间】:2021-06-18 19:06:41
【问题描述】:

我正在尝试通过 Google 的 JS Maps API 将 Google 地图添加到我们的应用程序中。我正在关注the documentation here。我已经通过 yarn 安装了@googlemaps/js-api-loader,现在正在尝试实例化一个加载器:

import { Loader } from "@googlemaps/js-api-loader";
const loader = new Loader({
  // ???
})

问题是,文档告诉我在这个初始化程序中提供一个 API 密钥。但我们不使用 API 密钥,而是使用应用程序/客户端 ID 和此项目的密钥。

我打算如何通过 ID 和密钥而不是 API 密钥以这种方式使用 Google Maps JS API?我看到了this questionthis question,但实际上都没有告诉你它。此外,this documentation 向您展示了在使用 <script> 标记时如何使用客户端 ID,但我更喜欢通过 yarn 包加载。

有什么方法可以实现吗?

【问题讨论】:

  • 关于downvote/closevote,我不知道我可以在这里提供什么其他信息。您使用Loader 初始化API,它应该采用apiKey 参数。我想知道我是否可以给它一个clientIDsecret 参数(或类似的东西)。仅此而已。
  • 为什么您不能获取和使用 API 密钥?
  • 您是否注册了将与地图一起使用的 URL? The Docs 建议在您从域中注册 url 后使用脚本 url,例如 https://maps.googleapis.com/maps/api/js?client=YOUR_CLIENT_ID

标签: javascript google-maps google-maps-api-3


【解决方案1】:

支持client 参数。 https://googlemaps.github.io/js-api-loader/interfaces/loaderoptions.html#client

import { Loader } from "@googlemaps/js-api-loader";
const loader = new Loader({
  client
})

如果这不起作用,请在https://github.com/googlemaps/js-api-loader 处打开一个错误

【讨论】:

  • 您确定您使用的客户端 ID 正确吗?
  • 我接受这个答案是因为它回答了我的问题,但就我而言,我的问题是我试图使用 Oauth2 客户端 ID。我认为我可以这样做,因为它位于 Google Maps JavaScript API 界面的凭据页面上。但我后来意识到,显然(回想起来)你不能使用特定于 oauth 的客户端 ID 来对 Maps API 进行身份验证,即使它位于 Maps API 的凭据页面上。您需要一个 API 密钥(或者是具有 不同 客户端 ID 的旧版高级帐户,正如这个答案和评论链接的 GH 问题所提到的那样)。有关更多信息,请参阅 GH 问题。
猜你喜欢
  • 1970-01-01
  • 2016-08-20
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多