2015-05-07 88 views
1

我使用Google Maps Web Services API進行工作,並且他們給了我一個客戶端ID。當我加載主頁面時,我沒有收到錯誤。但是,當我單擊一個子頁面時,例如localhost:8080/pages/page.xhtml,我會收到一個名爲UnauthorizedURLforClientIdMapError的錯誤消息,指出此URL未被授權使用提供的Google Maps客戶端ID。Google Maps JavaScript API v3 for Work UnauthorizedURLforClientIdMapError

僅供參考,谷歌討論了它的文檔在這裏:https://developers.google.com/maps/documentation/business/clientside/auth#registering_authorized_urls

與所有他這樣說,我使用的URL http://localhost:8080目前正在測試我的服務器使用Tomcat。這個域名已被授權,我的個人IP也是如此。在我看來的文件,我加入這個:

<script src="https://maps.googleapis.com/maps/api/js? &amp;client=MY_CLIENT_ID 
     &amp;v=3.19 
     &amp;channel=MY_CHANNEL" type="text/javascript"></script> 

其中「MY_CLIENT_ID」和「MY_CHANNEL」顯然改變,以適應我的需要(我的客戶ID和渠道是正確的)。我已經通過堆棧溢出進行了搜索,並閱讀了所有相關的Google文檔,但我覺得我錯過了一些非常小的東西(或者很大,我希望不會)。

發生了什麼事?

+0

你有沒有嘗試過你的主頁(工作的那個)關閉另一條路徑,看看你是否得到相同的錯誤?這可能會告訴你這個問題是在推薦人還是在你看來的實施中。 – Yaniv

+0

想通了。創建地理編碼器對象時需要客戶端ID +簽名。這導致由內部安全問題導致的SSL握手異常。必須繞過SSL檢查,它的工作。 – andrewjdg

+0

沒有注意到你最後的評論。但我覺得我的答案在技術上仍然適用,所以我會在那裏放棄它。 –

回答

1

使用Google Maps for Work和ClientID的每個URL必須被授權使用該客戶端。

你可以找到所有的細節here。但是,這是總結:

  • 的域名或IP地址,不必公開訪問
  • 指定域的所有子域也被授權。
  • 授權路徑的所有子路徑也是授權的。
  • 路徑區分大小寫。
  • 您可以將有效的URL限制爲使用特定端口的URL。
  • HTTP和HTTPS協議被認爲是不同的URL。

如果你得到UnauthorizedURLForClientIdMapError,期待通過URL授權規則,看看你只需將網址添加到授權的URL列表。

順便說一句,這裏是Google Maps API Error Codes的解釋列表。

0

您必須允許Google支持管理門戶中與該客戶ID相關的引用URL。

訪問Google支持管理門戶 - http://www.google.com/enterprise/portal - ,使用您的企業Google帳戶登錄,然後在左側菜單中轉到「地圖,管理客戶端ID」鏈接,在組合框中選擇您的客戶端ID,然後在「輸入網址」textarea,編寫你想授權的引薦來源網址,然後點擊「添加網址」按鈕。

如果您使用的是ClientID而不是API KEY來驗證Google地圖服務,則必須在此處授權引薦來源網址。如果您使用的是API密鑰,那麼您必須從Google開發者控制檯授權推薦人網址。