问题标签 [google-maps-embed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-maps - 使用多个 Google 帐户时不显示嵌入式 Google 地图
我嵌入了使用 Google 帐户 A 创建的 Google 地图。
- 如果我没有登录任何 Google 帐户并访问该网站,则地图可以正常工作。
- 如果我登录到一个 Google 帐户(比如说 Google 帐户 B)并访问该站点,那么地图就可以正常工作。
- 如果我在同一个浏览器中“添加另一个帐户”或登录另一个 Google 帐户(假设是帐户 C),那么我会看到一个红色的小怪物图标而不是地图,并且消息“www.google.com 已将您重定向太多次”。
- 如果我退出所有 Google 帐户,则地图可以正常工作。
- 同样,如果我使用一个帐户登录,则地图会正确显示。
有谁知道这是为什么以及我该如何解决?我发现很多人都在运行两个 Google 帐户。
控制台中没有消息。我们使用 Drupal,但我将地图嵌入到一个简单的 HTML 页面中,结果与上面相同,所以我猜这是 Google 的问题。我在网上找不到任何关于它的信息,除了斯堪的纳维亚论坛上的一条评论,如果您使用多个帐户登录,地图不会显示。
地图的共享权限也不是问题。他们都是公开的。
更新:我已经把问题缩小了一点。这在我们的 Web 服务器上不是问题,因为正如我所提到的,我可以在浏览器中从我的桌面打开的静态 HTML 页面中复制它,而无需涉及服务器、CMS 或 .htaccess 文件。相反,这似乎是与我的机构 Google 帐户有关的问题。我有两个个人账户和一个机构账户。
- 如果我先使用我的机构帐户登录,然后使用另一个帐户登录,则地图无法使用。
- 如果我使用个人帐户登录,然后使用我的机构帐户登录,地图就可以使用。
- 如果我使用个人帐户的任何组合登录,那么地图就可以工作。
因此,当我使用我所在机构提供的 Google 帐户登录时,会出现问题,然后我使用另一个 Google 帐户登录。哪个帐户创建了地图并不重要。
node.js - 如何正确代理对 Google Maps Embed API 的请求?
我正在尝试使用Google Maps Embed API嵌入与用户输入的地址匹配的地图。按照开发者指南,我获得了一个 API 密钥来添加到我的 API 请求中。当我通过我的 React 客户端中的 iframe 的“src”属性请求地图时,我能够成功地调出地图,如下所示:
但这会使我的 API 密钥暴露给客户端。
在Google 的 API Key Best Practices中,建议将 API 密钥存储在环境变量中,并使用代理服务器来保护密钥。但是,当我尝试代理请求(下面的代码)时,它似乎会在一瞬间返回适当的地图,但随后 iframe 将地图替换为“糟糕!出了点问题”消息,并且浏览器控制台显示此错误:
Google Maps JavaScript API 错误:UnauthorizedURLForClientIdMapError https://developers.google.com/maps/documentation/javascript/error-messages#unauthorized-url-for-client-id-map-error 您要授权的站点 URL:http:// /127.0.0.1:3001/api/maps?parameters=[my_encoded_parameters]
我目前只是在本地开发,所以我尝试按照错误文档的建议将http://127.0.0.1:3001/ * 注册为授权 URL,并且我还尝试删除对 API 的所有网站限制键只是为了查看我是否授权了错误的 URL,但是这两种尝试仍然产生了相同的错误。
除了这个 Google Codelabs project之外,我没有找到很多关于设置代理的资源,但我无法从中挑选任何东西来帮助解决这个问题。
这是我在 React 前端使用的代码:
在我的 Express Node.js 后端:
我在 Docker 容器中运行我的 React 前端和我的 Node.js 后端。
我最好的猜测是我错过了 Maps API 所期望的请求标头,但我还没有找到任何关于它的文档,或者我可能误解了更基本的东西。任何指导将不胜感激。
reactjs - 使用 IFrame 嵌入谷歌路线
我正在构建一个反应应用程序,我正在尝试在我的网站上嵌入谷歌地图方向。这是我的代码:
我收到了很多人之前遇到的错误:
奇怪的是,当我更改为使用地点 API 的 URL 时,Iframe 变为:
它完全可以找到。
请注意,这两个 URL 均直接取自Google API 文档