我们正在尝试为我们的一个客户开发一个地理广场应用程序,我们希望首先在自己的域中进行测试 .
我们已经签署了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)”
我的凭据页面缺少添加引用来接受的可能性,因此现在无法实现涉及添加引用的解决方案 .
我的凭证页面:
为什么我们会收到这个错误?我们该如何解决? TIA
19 回答
我知道这是一个已经有几个答案的旧问题,但我遇到了同样的问题,对我来说问题是我遵循console.developers.google.com上提供的示例并以
*.domain.tld/*
格式输入了我的域名 . 这根本不起作用,我尝试添加各种变体,如domain.tld
,domain.tld/*
,*.domain.tld
等 .为我解决的是添加实际的协议;
http://domain.tld/*
是我在我的网站上工作所需的唯一一个 . 我想如果我要切换到HTTPS,我需要添加https://domain.tld/*
.更新:Google最终更新了占位符以包含
http
:根据文档,“RefererNotAllowedMapError”表示
我为自己的个人/工作用途设置了Google Maps Embed API,到目前为止还没有指定任何HTTP引用 . 我没有注册错误 . 您的设置必须使Google认为您正在访问的网址未注册或允许 .
我尝试了很多引用变种并等待了5分钟,直到我意识到Google在表单字段中填充的示例存在缺陷 . 他们展示:
但是,只有在域名前面有
subdomain.
或www.
时才有效 . 以下内容立即为我工作(省略了Google示例中的领先时期):来吧Google,你们比API Credential页面更聪明 . (我知道,因为我有两个儿子在那里工作 . )
"referrers"的列表比它允许的更加挑剔 . (当然,它应该更宽容 . )以下是一些花了我几个小时才发现的规则:
列表中的顺序很重要 . 在列表中移动您的URL可能会使其正常工作 .
"http://"前缀是必需的 .
甚至"localhost"需要它:“http://localhost/foo/bar.html”
作为通配符的尾随
*
看起来好像是字符串比较 .即使“http://localhost/foo/bar.html ", " http://localhost/foo/bar.html?arg=1”也行不通 . (通配符有帮助吗?)
对于两个prod dev,都有(至少)两行:“http://localhost/foo/bar.html " and " http://my.site.com/foo/bar.html”
似乎没有必要使用端口号(8085?4000?) .
可能还有其他规则,但这是一个乏味的猜谜游戏 .
请注意,如果您只是更改它,设置可能需要5分钟才能生效 .
根据google docs发生这种情况是因为您正在使用Google Maps API的
url
,not registered
在list of allowed referrers
编辑:
从Google Docs
所以,请配置
http://testdomain.com
域,然后你的http://www.testdomain.com
将开始工作 .Accept requests from these HTTP referrers (web sites)
写localhost目录路径
我发现即使你的
HTTP Referreres
足够有效,错误的API Restrictions
组也会导致Google Maps JavaScript API error: RefererNotAllowedMapError
.例如:
您正在使用Javascript API作为密钥 .
将
http://localhost/*
添加到Application Restrictions / HTTP Referrences
选择
Maps Embed API
而不是Maps Javascript API
这会导致
RefererNotAllowedMapError
检查您是否启用了正确的APIS .
我尝试了以上所有,星号,域名tld,正斜杠,反斜杠和所有内容,即使在最后只输入一个网址作为最后的希望 .
所有这些都不起作用,最后我意识到谷歌还要求你现在指定你想要使用哪个API(见截图)
我没有启用我需要的功能(对我而言是Maps JavaScript API)
一旦我启用它,所有工作正常使用:
http://www.example.com/ *
我希望能帮助别人! :)
您显示了api凭据页面的屏幕截图,但您必须单击“浏览器键1”并从那里添加引用 .
For deeper nested pages
如果您在项目文件夹中有项目或嵌套页面
http://yourdomain.com/your-folder/your-page
你可以输入http://yourdomain.com/*/*
重要的部分是
/*/*/*
取决于您需要走多远似乎
*
将不匹配/
或进入更深的路径..除非你有更深的嵌套,否则这将为你提供完整的域访问权限 .
我最终使用谷歌的这个提示让我的工作:(https://support.google.com/webmasters/answer/35179)
以下是我们对域名和网站的定义 . 这些定义特定于Search Console验证:
几年来有许多假想的解决方案,有些不再工作,有些从未做过,因此我的最新工作在2018年7月结束 .
Setup:
Google Maps JavaScript API必须正常使用...
多个域调用API:
example.com
和example.net
任意子域:
user22656.example.com
等安全和标准HTTP协议:
http://www.example.com/
和https://example.net/
不定路径结构(即大量不同的URL路径)
Solution:
实际上使用占位符中的模式:
<https (or) http>://*.example.com/*
.不省略协议,但每个域添加两个条目(每个协议一个) .
子域的附加条目(带有
*.
引导主机名) .我感觉
RefererNotAllowedMapError
错误仍然出现使用正确的配置(并且等待了足够的时间) . 我删除了凭证密钥,重复了请求(现在获得了InvalidKeyMapError
),创建了新的凭据(使用完全相同的设置),从那时起它就一直工作 .添加纯协议和域似乎没有包含子域 .
对于其中一个域,工作配置如下所示:
(作为文字:)
http://www.example.com/ *经过几天和几天的尝试后,对我有用 .
删除限制(无)对我有用 .
我遇到了同样的错误:
此链接讨论如何设置API密钥限制:https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions
在我的情况下,问题是我使用这个限制:
这意味着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不起作用 . 我只需要添加第二个推荐人:
这解决了我的问题 .
直到我发现
RefererNotAllowedMapError
可能是由于没有与项目相关联的结算帐户造成的,这些修复程序都没有对我有用 . 因此,请务必激活免费试用版或其他任何内容 .我添加了2个网站域名,在子域名中设置“*”不起作用,但使用相同的Google Map API密钥为我的网站设置了特定的子域名“WWW”和非子域名 .
dont' use "*" in subdomain
希望它有所帮助 .
在现场检查您的装饰 . 要加载Google Maps JavaScript API,请使用此类脚本标记
我在function.php文件中的Wordpress网站上使用此声明
我已经在这种格式上设置了API密钥,它的工作正常
这个宣言不起作用