2013-03-29 70 views
0

我正在開發一個Android應用程序,它使用Places API檢索信息並將其顯示在地圖上。從HTTP請求獲取ACCESS_DENIED狀態消息後,初始請求檢索到位置失敗。下面是我用來生成請求代碼:來自位置的ACCESS_DENIED狀態API

try { 

HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT); 
     HttpRequest request = httpRequestFactory 
       .buildGetRequest(new GenericUrl(PLACES_SEARCH_URL)); 
     request.getUrl().put("key", API_KEY); 
     request.getUrl().put("location", _latitude + "," + _longitude); 
     request.getUrl().put("radius", _radius); // in meters 
     request.getUrl().put("sensor", "false"); 
     if(types != null) 
      request.getUrl().put("types", types); 

     PlacesList list = request.execute().parseAs(PlacesList.class); 
     // Check log cat for places response status 
     Log.d("Places Status", "" + list.status); 
     return list; 

在另一個#1張貼有人曾建議,海報請嘗試以下操作來測試他們的關鍵:

轉到API控制檯這裏,然後到服務。點擊有效服務 標籤並驗證「Places API」已打開。點擊? 「嘗試」鏈接 旁邊。它應該創建一個適當的URL與您的密鑰應該 工作。比較您嘗試使用此URL的鏈接 的差異。

我跟着這些指示。基於以下事實,當我點擊「 「試」我懷疑的東西是根本性的錯誤代碼的API密鑰獨立的鏈接...否則我想我會得到一個成功而不是REQUEST_DENIED:

{ 
    "html_attributions" : [], 
    "results" : [], 
    "status" : "REQUEST_DENIED" 
} 

我通過輸入得到我的鑰匙我的調試證書的SHA1(我使用Keytool獲得了所有相應的參數,例如,androiddebugkey .... debug.keystore),之後是「;」和應用程序的包名稱。

不知道是什麼問題...我敢肯定,這是簡單的東西,但我沒有看到它,我被困。思考?

+0

所以你可以看到我解決了我自己的問題,併發布了我是如何解決它的。但是,我不確定最初是什麼造成了這個問題。我想了解是什麼導致了這個「問題」,以便我和其他人能夠在未來避免這個問題。 – user2101068

回答

0

我從來沒有收到這個帖子的響應所以最終我已經解決了問題,通過建立在一個新的項目名稱一個全新的鍵,我至少能檢索Google..I'm仍然有問題的地方與填充地圖,但這可能是一個代碼問題。

我注意到我使用的密鑰給了我ACCESS DENIED結果的標題是:「Android應用程序的密鑰(帶有證書)」,它的標籤是「Android apps:」鍵。鍵值是SHA1值「;」接着是Package Name。而我在一個新的項目名稱(Places API)下創建的最終工作的關鍵字標題爲:「瀏覽器應用程序(帶查閱者)的關鍵字」,它的標籤爲「查閱者:」,值爲「允許任何查閱者」 。

所以這兩個鍵肯定有些不同。我不確定我在生成密鑰時做了什麼不同。我想了解我做了什麼來生成這兩種「不同」類型的密鑰,以便我和其他人不會重複我的「錯誤」。

有很多關於在Google文檔中創建密鑰的參考。事實上,有很多關於關鍵問題的帖子告訴我,Google文檔不是很清楚,否則在這個主題上不會存在很多問題。