【问题标题】:Google Maps API Key referrer for file:///文件:/// 的 Google Maps API 密钥引用
【发布时间】:2016-10-28 01:19:26
【问题描述】:

我有一个应用程序的情况,我部署了一个可以在三个不同位置显示的 Google 地图:

  • 在应用程序 Web 视图中
  • 在浏览器中预览
  • 发布到服务器

所以我需要用户在 api 密钥中添加一些引用者,以便在他们发布到自己的服务器时覆盖它们。

他们可以为自己服务器上发布的地图以及本地浏览器中的预览添加一个引用。

但是我不知道你在应用程序 web 视图中预览地图时添加了什么作为引用者,并且此时页面的 url 是 file:/// 引用的 url?

如果我们将所有引用者留空以获得完整的通配符 api 密钥,它可以在应用程序的 web 视图中工作。

我已经尝试了尽可能多的配置来作为 file:/// url 的引用者,但没有运气:

我试过了:

文件

文件*

文件/*

文件:///*

【问题讨论】:

  • 你不能......谷歌地图只有在启用互联网连接并且可以通过互联网获得地图库时才能工作......
  • 对不起,我应该注意到在应用程序中它可以访问互联网。如果我通过不添加任何引用者来使用完整的通配符 api 密钥,它可以在带有 file:/// url 的应用程序中使用。
  • 如果您的应用程序可以使用互联网,那么应该可以工作,但是“如果我使用完整的通配符 api 密钥,完全不添加任何引用者,它是什么意思”
  • 是的,我希望更新的问题更有意义,但是如果我不添加引用者,它可以在窗口位置是 file:/// url 的应用程序 Web 视图中工作,但那些文件引用者我已尝试停止它在应用程序中的工作,同时继续在已发布的页面和本地主机中工作,因为添加了引荐来源以满足这些情况。
  • 如果我不明白的话。文件工作正常,然后你使用 localhost .. 当你在文件系统中使用它时不工作 .. .. 对吗?

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


【解决方案1】:

您似乎无法使用file:/// 作为URL 来源 来解决此问题。您将始终收到 RefererNotAllowedMapError 错误。使用 file:/// 作为 URL 来源告诉我您正在尝试在本地环境中运行它。我建议您使用Python Simple HTTP serverNodeJS local server 使用本地服务器。

我已经在SO thread 中列举了如何设置本地 Python 服务器的步骤。您将能够使用它来运行您的 Google 地图示例。

更新

好消息,Google 增加了对 file:/ 引荐来源网址的支持。您可以在文档中看到以下文字

file:// referers need a special representation to be added to the Key restriction. The "file:/" part should be replaced with "__file_url__" before being added to the Key restriction. For example, "file://path/to/" should be formatted as "__file_url__/path/to/*". After enabling file:// referers, it is recommended you regularly check your usage, to make sure it matches your expectations

https://developers.google.com/maps/documentation/javascript/get-api-key#key-restrictions

【讨论】:

  • 被接受,因为不存在 file:/// 的 url 来源的引用者。我是应用程序的第三方插件,所以将 url 更改为 localhost 对我来说不是一个选项。
  • 如果我们不能改变加载源的方式,我们能做些什么吗? (在我的情况下是一个 PhoneGap 应用程序),还是我们被困在不使用密钥或使用通配符密钥?
猜你喜欢
  • 2011-03-27
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多