当前位置: 动力学知识库 > 问答 > 编程问答 >

android maps v2 - ACCESS_DENIED Status from Places API

问题描述:

I'm developing an Android App that uses the Places API to retrieve information and displays it on a map. The initial request to retrieve to places fails with a ACCESS_DENIED status message from the HTTP request. Below is the code that I used to generate the request:

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;

In another Stackoverflow posting someone had suggested that the poster try the following to test their key:

Go to the api console here, then to SERVICES. Click Active services

tab and verify 'Places API' is turned ON. Click on the ? "try" link

next to it. It should create a proper URL with your key which should

work. Compare the link that you are trying against this URL for

differences.

I followed these instructions. Based on the fact that I received the following results when I clicked on the ? to "try" the link I suspect something is fundamentally wrong with the API Key independent of the code...otherwise I would think I would get a SUCCESS rather than REQUEST_DENIED:

{

"html_attributions" : [],

"results" : [],

"status" : "REQUEST_DENIED"

}

I obtained my key by entering the SHA1 of my debug certificate (which i obtained using Keytool with all the appropriate parameters...e.g, androiddebugkey....debug.keystore) followed by a ";" and the Package Name of the app.

Not sure what the problem is...I'm sure it's something simple but I'm not seeing it and I'm stuck. Thoughts?

网友答案:

I never received a response to this posting so ultimately I've resolved the problem by creating a brand new key under a new project name and I was at least able to retrieve Places from Google..I'm still having issues with populating maps but that could be a code issue.

I noticed that the key that I was using that gave me the ACCESS DENIED results had a title of: "Key for Android apps (with certificates)" and it had a label "Android apps:" listed just under the actual key. The key value is the SHA1 value ";" followed by the Package Name. Whereas the key I created under a new Project Name (Places API) that ultimately worked had a title of: "Key for browser apps (with referers)" and it had a label of "Referers:" and value of "Any referer allowed".

So there is definitely something different about these two keys. I'm not sure what I did differently when I generated the keys. I'd like to understand what I did to generate these two "different" types of keys so that I and perhaps others won't repeat my "mistake(s)".

There are many references to creating keys in the Google documentation. The fact that there are so many postings regarding problems with the keys tells me that the Google documentation is not very clear otherwise so many issues wouldn't exist on this topic.

分享给朋友:
您可能感兴趣的文章:
随机阅读: