簡體   English   中英

為什么我的api密鑰不被Google Directions(Android)請求接受?

[英]Why is my api key not accepted by the Google Directions (Android) request?

每當我將Google Play服務API密鑰與我的Google路線請求一起提供時,請參閱以下代碼:

    private String makeDirectionsURL(double originLat, double originLong, double destLat, double destLong)
{
    StringBuilder url = new StringBuilder();
    //first part of url//
    url.append("https://maps.googleapis.com/maps/api/directions/json?");
    //start adding parameters//
    //origin coordinates
    url.append("origin="+originLat+","+originLong);
    //destiniation coordinates
    url.append("&destination=");
    url.append(destLat+","+destLong);
    //api key
    url.append("&key=");
    url.append(getResources().getString(R.string.google_api_key));
    //NOTE: for some reason, the request suceeds when leaving out the api key 

    return url.toString();

}

當我在請求中包含api密鑰作為參數時,json響應顯示我的請求已被拒絕。 回復如下:

{“error_message”:“此IP,站點或移動應用程序無權使用此API密鑰。”,“routes”:[],“status”:“REQUEST_DENIED”}

然而,相同的api密鑰適用於我的谷歌地圖視圖 - 我的api控制台注冊了地圖視圖配額限制的訪問。 甚至更奇怪,當我在Directions請求中省略key參數時,我得到一個有效的JSON響應。

我有一種感覺,我必須為Google Directions服務生成另一個不同的api密鑰 - 但我不知道如何。 此處的文檔: https//developers.google.com/maps/documentation/directions/#api_key

說訪問控制台並激活Directions API服務 - 我做到了。 然后它說我的api密鑰“將在API訪問頁面的Simple API訪問部分提供。方向API應用程序使用密鑰用於服務器應用程序。” 現在是我困惑的地方 - 如果我從移動設備訪問我如何使用服務器應用程序的密鑰 - 我假設這是任何希望使用該服務的網頁 - 但我該怎么做的android應用程序。 正如我所說的,我已經嘗試使用我的簡單API訪問密鑰用於Android應用程序,我知道它可以工作,但是當我將相同的密鑰傳遞給Google方向時 - 它神秘地不起作用......

任何幫助,含糊的指導或閱讀鏈接都將非常感激。

PS:如果我無法解決這個問題 - 我是否可以繼續發送帶有api密鑰的請求?

我認為問題是因為你試圖傳遞一個server key ,它直接綁定到你服務器的IP地址,當你應該傳遞一個android app key

在您的Google API控制台中,導航到API和Auth 從這里,您可以創建一個新的公共API密鑰。

創建Android密鑰

出現提示時,選擇Android Application 在此輸入圖像描述

您需要輸入設備的SHA1證書指紋

這來自用於簽署apk的密鑰庫。 在調試中運行應用程序時,您很可能正在使用IDE的調試密鑰庫。 谷歌對如何獲取這些信息有一個很好的寫作

發布應用程序時,您需要使用自己的密鑰進行簽名。 您需要將API密鑰編輯為新的密鑰庫SHA1指紋或創建新的API密鑰。

此外,根據Google的說法,您應該使用密鑰。

所有Directions API應用程序都應使用API​​密鑰。 在您的請求中包含密鑰:

  • 允許您監視API中應用程序的API使用情況
  • 安慰。 啟用每個密鑰而不是每個IP地址配額限制。
  • 確保Google可以在必要時就您的申請與您聯系。

雖然我無法評論他們如何嚴格執行此操作,但我強烈建議您這樣做以避免任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM