我正在使用Google Maps Web Services API工作,他们给了我一个客户端ID。当我加载主页面时,我没有收到错误。但是,当我单击一个子页面时,例如localhost:8080 / pages / page.xhtml,我收到一个名为UnauthorizedURLforClientIdMapError的错误,其中包含此URL未被授权使用提供的Google Maps客户端ID的消息。
供参考,Google在其文档中对此进行了讨论:https://developers.google.com/maps/documentation/business/clientside/auth#registering_authorized_urls
尽管如此,我目前正在使用网址http://localhost:8080使用TomCat测试我的服务器。此域名已获得授权,我的个人IP也已获得授权。在我的视图文件中,我添加了这个:
<script src="https://maps.googleapis.com/maps/api/js? &client=MY_CLIENT_ID
&v=3.19
&channel=MY_CHANNEL" type="text/javascript"></script>
其中'MY_CLIENT_ID'和'MY_CHANNEL'明显改变以满足我的需要(我的客户ID和频道是正确的)。我已经搜索了堆栈溢出并且还阅读了所有相关的Google文档,但我觉得我错过了一些非常小的东西(或者很大,我希望不会这样)。
发生了什么事?
答案 0 :(得分:2)
使用Google Maps for Work与ClientID的每个网址都必须获得授权才能使用该网址。
您可以找到所有详细信息here。但这是摘要:
- 域名或IP地址不必公开访问
- 指定域的所有子域也已获得授权。
- 授权路径的所有子路径也是经过授权的。
- 路径区分大小写。
- 您可以将有效网址限制为使用某些端口的网址。
- HTTP和HTTPS协议被视为不同的URL。
如果您收到 UnauthorizedURLForClientIdMapError ,请查看网址授权规则,看看您是否只需要将网址添加到授权网址列表中。
顺便说一句,这是Google Maps API Error Codes的清单,附有解释。
答案 1 :(得分:0)
You must allow the referred URLs related to that Client ID in the Google support management portal.
Access to the Google Support Management portal - http://www.google.com/enterprise/portal - , login with your enterprise google account, then in the left menu, go to "Maps, Manage Client ID" link, select you client id in the combo, and in the "Enter the URLs" textarea, write the referrer URL you want to authorize and click on "Add URL" button.
If you are using a ClientID instead an API KEY to authenticate to Google Maps services, the referrer URLs must be authorized here. If you are using an API KEY, yo must authorize the referrer urls from the google developers console.