Development Tip

Google Geocoding API-REQUEST_DENIED

yourdevel 2021. 1. 9. 11:04
반응형

Google Geocoding API-REQUEST_DENIED


분명히 나는 ​​'Google Geocoding API'를 사용하기 위해 'Maps API 키'가 필요하지 않습니다.

http://code.google.com/apis/maps/documentation/geocoding/index.html

그러나 나는 이것을 얻습니다.

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

이것은 내 IP가 차단되었음을 의미합니까? 이것을 극복하기 위해 무엇을 할 수 있습니까?


2014 년 말까지이 오류의 일반적인 원인은 sensor아래와 같이 요청에서 필수 매개 변수를 생략하는 것이 었습니다 . 그러나 더 이상 필요하지 않은 2014/12/31 이전부터 :

센서 매개 변수

Google Maps API는 이전에 애플리케이션에서 사용자의 위치를 ​​확인하기 위해 센서를 사용했는지 여부를 나타내는 센서 매개 변수를 포함해야했습니다. 이 매개 변수는 더 이상 필요하지 않습니다.


sensor요청에 매개 변수 를 지정 했습니까 ?

"REQUEST_DENIED"는 일반적으로 센서 매개 변수가 없기 때문에 요청이 거부되었음을 나타냅니다.

센서 (필수) — 지오 코딩 요청이 위치 센서가있는 장치에서 오는지 여부를 나타냅니다. 이 값은 true 또는 false 여야합니다.


API 키 매개 변수 및 해당 값을 제거하십시오.

예. https://maps.googleapis.com/maps/api/geocode/json?address=[YOUR ADDRESS]&sensor=true


필자의 경우에는 key = API_KEY를 추가 한 후 보안 프로토콜 (즉 : http)없이 서비스를 호출 하면이 문제가 발생 한다는 것을 알았습니다 . https로 변경하면 해결되었습니다.


주소를 올바르게 URL 인코딩하지 않으면 일부 주소에 대해 REQUEST_DENIED를받는 것으로 나타났습니다. 예를 들어

123 Main St #B, 마이 타운, CA 94110

'#'문자는 % 23으로 인코딩해야합니다.


방금 구글이 자신의 웹 사이트에서 제공하는 예제 URL 복사 & 붙여 넣을 경우 http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false를 그것은 것입니다 센서의 잘못된 매개 변수로 인해 실패합니다. 그들이 작성한 것이 아니라 참 또는 거짓으로 변경해야합니다. 나에게 일어난 것처럼 당신이 가졌던 오류 일 수도 있습니다 ...


저처럼 2017 년 이후에이 페이지를 찾는 분들을 위해

센서가 더 이상 필요하지 않습니다. 시도했는데 오류가 발생했습니다.

센서 불필요

요즘 필요한 것 같은 Google Maps Geocoding API 를 활성화하기 만하면되었습니다 .

나와 같은 사람이 도움이되기를 바랍니다.


나는이 문제가 있었고 Geocoding이 JS maps API와 함께 제공되었다고 가정하고 있음을 깨달았습니다. 그러나 클라우드 콘솔에서 활성화하지 않은 별도의 API입니다. 활성화하면 즉시 수정되었습니다.


이 계정으로 서비스를 사용할 수 없음을 Google에서 허용하지 않습니다. 먼저 활성화하십시오. https://console.developers.google.com/project로 이동 하여 장소 서비스가 활성화 된 새 프로젝트를 생성하면 문제가 해결 될 수 있습니다.


drupal 7 Location 모듈을 사용 하여이 문제가 발생했습니다. 빈 위치를 모두 자동으로 채우면이 오류가 발생했습니다. 위치 API에 대한 요청 중 하나를 수동으로 실행하면 반환 된 JSON에서 다음 오류가 발생했습니다.

"브라우저 API 키는이 API와 함께 사용할 때 참조 자 제한을 가질 수 없습니다."

문제를 해결하는 것은 쉬웠습니다. 제한없이 새 키를 만들고 지오 코딩에만 사용합니다.

Google API 키를 처음 사용하는 사용자를위한 참고 사항 : 제한 사항은 API 키를 사용하여 특정 도메인 / 하위 도메인으로 요청을 제한하는 것을 의미합니다. (예 : http://yourdomain.com의 요청 만 허용됨).


이 문제로 어려움을 겪고있는 사람을 위해 방금 Geocoding API를 리퍼러 제한이있는 API 키와 함께 사용할 수 없다는 사실을 알게되었습니다. 모든 리퍼러 제한을 제거하면 좋을 것입니다.

리퍼러 제한이있는 키 (예 : Maps JS API)를 허용하는 다른 API를 사용하는 경우 다른 API가 키를 공개적으로 표시 할 수 있으므로 제한없이 두 번째 키를 생성하여 지오 코딩 전용으로 사용하는 것이 가장 좋습니다. 그렇지 않으면 자신의 사이트에서 사용할 수 있습니다.


As you say, this can mean that your IP address has been blocked. I'd make sure that you specify the key parameter on the query string for the Geocoding API request.

https://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=Placename&key=XXxxxXXxXxxxxXXxx

Also make sure that if you've set up IP Address Restrictions within the Developer Console, you've allowed the correct IP address, just click the project within the list and you'll see the allowed IPs.

Example of project list in Google Developer Console

If you're still running into issues, you might want to look into printing out the values of the status and error_message elements from the response from Google, you'll see something like this:

REQUEST_DENIED - This IP, site or mobile application is not authorized to use this API key. Request received from IP address 123.4.5.678, with empty referer

If it doesn't mention an IP address restriction, it may well give you enough information about the problem to Google a fix.


Google is returning a very useful error message, which helps to correct the issue!

Dim Request         As New XMLHTTP30
Dim Results         As New DOMDocument30
Dim StatusNode      As IXMLDOMNode
Request.Open "GET", "https://maps.googleapis.com/maps/api/geocode/xml?" _
  & "&address=xxx", False
Request.Send
Results.LoadXML Request.responseText
Set StatusNode = Results.SelectSingleNode("//status")
Select Case UCase(StatusNode.Text)
    Case "REQUEST_DENIED"
          Debug.Print StatusNode.NextSibling.nodeTypedValue
    ... 

Error Message Examples

Message 1: Requests to this API must be over SSL. Load the API with "https://" instead of "http://".

Message 2: Server denied the request: You must use an API key to authenticate each request to Google Maps Platform APIs. For additional information, please ...

ReferenceURL : https://stackoverflow.com/questions/3212550/google-geocoding-api-request-denied

반응형