我们正在尝试为我们的一个客户开发一个地理广场应用程序,我们希望首先在自己的域中进行测试。
我们已经签署了Google Maps JavaScript API,并且我们拥有有效的浏览器密钥,我们的域名www.grupocamaleon.com已被授权使用该密钥。
但是我们无法使最简单的例子运行而没有错误。
在我们的域和我们的密钥中,我们有以下演示:
(1)http://www.grupocamaleon.com/boceto/aerial-simple.html
但它不起作用,Firebug控制台说:
“Google Maps API错误:Google Maps API错误:RefererNotAllowedMapError(指向RefererNotAllowedMapError上的Google文档链接)您要授权的网站网址:(1)”
我的凭据页面缺少添加引用来接受的可能性,因此现在无法实现涉及添加引用的解决方案。
我的凭证页面:
为什么我们会收到这个错误?我们该如何解决?
您显示了api凭据页面的屏幕截图,但您必须单击“浏览器键1”并从那里添加引用。
对于更深层的嵌套页面
如果您在项目文件夹中有项目或嵌套页面
http://yourdomain.com/your-folder/your-page
你可以输入
http://yourdomain.com/*/*
重要的是/*/*/*
取决于你需要走多远
似乎*
将不匹配/
或进入更深的路径..
除非你有更深的嵌套,否则这将为你提供完整的域访问权限。
我遇到了同样的错误:
此链接讨论如何设置API密钥限制:https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions
在我的情况下,问题是我使用这个限制:
HTTP引用(网站)接受来自这些HTTP引用(网站)的请求(可选)将*用于通配符。如果您将此留空,则会从任何推荐人接受请求。在生产中使用此密钥之前,请务必添加引用。
https://*.example.net/*
这意味着诸如https://www.example.net或https://m.example.net或https://www.example.net/San-salvador/之类的URL可以使用。但是,https://example.net或https://example.net或https://example.net/San-salvador/等URL不起作用。我只需要添加第二个推荐人:
https://example.net/*
这解决了我的问题。
http://www.example.com/ *和http://example.com/ *
我最终使用谷歌的这个提示让我的工作:(https://support.google.com/webmasters/answer/35179)
以下是我们对域名和网站的定义。这些定义特定于Search Console验证:
http://example.com/ - A site (because it includes the http:// prefix)
example.com/ - A domain (because it doesn't include a protocol prefix)
puppies.example.com/ - A subdomain of example.com
http://example.com/petstore/ - A subdirectory of http://example.com site
我添加了2个网站域名,在子域名中设置“*”不起作用,但使用相同的Google Map API密钥为我的网站设置了特定的子域名“WWW”和非子域名。
希望它有所帮助。
子域名上不允许使用通配符(星号)。
忘记Google在占位符上所说的内容,这是不允许的。
这是另一款非常糟糕的Google产品,实施起来非常糟糕。
我发现的问题是,如果你通过IP地址限制API密钥,它就不会工作......但是远远不是谷歌要明确这一点......直到故障排除和研究我发现:
具有IP地址限制的API密钥只能用于从服务器端使用的Web服务(例如Geocoding API和其他Web服务API)。这些Web服务中的大多数都具有Maps JavaScript API中的等效服务(例如,请参阅地理编码服务)。要使用Maps JavaScript API客户端服务,您需要创建一个可以使用HTTP引用限制进行保护的单独API密钥(请参阅限制API密钥)。
https://developers.google.com/maps/documentation/javascript/error-messages
FFS Google ...非常重要的信息,可以很好地澄清设置...
经过几天和几天的努力,http://www.example.com/ *为我工作。
来吧Google,你们比API Credential页面更聪明。 (我知道,因为我有两个儿子在那里工作。)
“推荐人”列表比它允许的更加挑剔。 (当然,它应该更宽容。)以下是一些花了我几个小时才发现的规则:
*
看起来好像是字符串比较。可能还有其他规则,但这是一个乏味的猜谜游戏。
直到我发现RefererNotAllowedMapError
可能是由于没有与项目相关联的结算帐户造成的,这些修复程序都没有对我有用。因此,请务必激活免费试用版或其他任何内容。
在现场检查您的装饰。要加载Google Maps JavaScript API,请使用此类脚本标记
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer></script>
我在function.php文件中的Wordpress网站上使用此声明
wp_enqueue_script("google-maps-v3", "//maps.google.com/maps/api/js?key=YOUR_API_KEY", false, array(), false, true);
我已经在这种格式上设置了API密钥,它的工作正常
http://my-domain-name(without www).com/*
这个宣言不起作用
*.my-domain-name.com/*
删除限制(无)对我有用。
Chrome的Javascript控制台建议我在我的HTTP引用列表中声明整个页面地址,在这个例子中http://mywebsite.com/map.htm即使确切地址是http://www.mywebsite.com/map.htm - 我已经按照其他人的建议列出了通配符样式,但这是它对我有用的唯一方式。
我尝试了很多引用变种并等待了5分钟,直到我意识到Google在表单字段中填充的示例存在缺陷。他们展示:
*.example.com/*
但是,只有在您的域名前面有subdomain.
或www.
时才有效。以下内容立即为我工作(省略了Google示例中的领先时期):
*example.com/*
只需提醒一下,如果您只是更改它,设置可能需要5分钟才能生效。
根据google docs这发生的原因是因为您正在使用Google Maps API的url
,它在not registered
中的list of allowed referrers
编辑:
指定域的所有子域也都是经过授权的。
如果http://example.com被授权,那么http://www.example.com也被授权。反之亦然:如果http://www.example.com获得授权,http://example.com未必获得授权
所以,请配置http://testdomain.com
域,然后你的http://www.testdomain.com
将开始工作。
检查您是否启用了正确的APIS。
我尝试了以上所有,星号,域名tld,正斜杠,反斜杠和所有内容,甚至最后只输入一个url作为最后的希望。
所有这些都不起作用,最后我意识到谷歌还要求你现在指定你想要使用哪个API(见截图)
我没有启用我需要的功能(对我而言是Maps JavaScript API)
一旦我启用它,所有工作正常使用:
我希望能帮助别人! :)
我发现即使你的HTTP Referreres
足够有效,错误的API Restrictions
导致Google Maps JavaScript API error: RefererNotAllowedMapError
。
例如:
http://localhost/*
添加到Application Restrictions / HTTP Referrences
Maps Embed API
而不是Maps Javascript API
RefererNotAllowedMapError
多年来有很多假想的解决方案,有些不再工作,有些从未做过,这是我最新的工作,每年2018年7月结束。
建立:
Google Maps JavaScript API必须正常使用...
example.com
和example.net
user22656.example.com
等http://www.example.com/
和https://example.net/
解:
<https (or) http>://*.example.com/*
。*.
)。RefererNotAllowedMapError
错误仍然出现使用正确的配置(并等待充足的时间)。我删除了凭证密钥,重复了请求(现在获得InvalidKeyMapError
),创建了新的凭据(使用完全相同的设置),从那时起它就一直工作。(作为文字:)
Accept requests from these HTTP referrers (web sites)
https://*.example.com/*
https://example.com/*
http://*.example.com/*
http://example.com/*