이 IP, 사이트 또는 모바일 애플리케이션은이 API 키를 사용할 권한이 없습니다.


101

https://maps.googleapis.com/maps/api/geocode/json을 사용하고 있습니까? 서버 키 및 사용자 IP와 연결하여 주소의 위도와 경도를 찾으려고 할 때 오류를 다음과 같이 찾습니다.

Google의 서버 액세스 키가 있고 서버의 IP 주소를 허용 목록에 넣었습니다.

PHP CURL을 통해 액세스하려는 URL은 다음과 같습니다.

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=XXXXXXXXXXXX

내가 얻는 결과 :

Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)

구성해야 할 것이 있습니까? 지오 코딩 API도 켜져 있습니다.


당신이 구글에서 인증 된 키를 얻을 수 있고,이 API에 넣어
Dimag Kharab

사용할 수있는 API 키가 이미 있습니다
sanket

그것은 나를 위해 일한 마이크가 대답 확인
Sheraz 아마드 Khilji에

mike20132013의 답변을 수락하십시오! 효과가있다!
aveschini

이 문제에 대한 공식 문서가 있습니다 : chromium.org/Home/chromium-security/…
Gopal00005

답변:


150

나는 같은 문제가 있었고 이것을 발견했습니다.

URL에서 앱의 API 키가 아닌 서버 키가 필요합니다.

따라서 기본적으로 다음과 같이 URL 끝에 서버 키를 추가하면됩니다.

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&sensor=true&key=SERVERKEY

이제 서버 키를 얻으려면 다음 단계를 따르십시오.

1) 개발자 콘솔 https://code.google.com/apis/console/로 이동합니다.

2) 자격 증명의 공용 API 액세스에서 새 키 만들기

3) 옵션에서 서버 키를 선택합니다.

4) 필드에 IP 주소를 입력하고 더 많은 IP 주소가있는 경우 모든 단일 행에 추가 할 수 있습니다. 참고 : 테스트 목적으로 사용하려는 경우에만 IP 주소를 입력하십시오. 그렇지 않으면 IP 주소 섹션을 비워 둡니다.

5) 완료되면 생성을 클릭하면 새 서버 키가 생성되고 해당 서버 키를 URL에 추가 할 수 있습니다.

마지막으로 URL 중간에 sensor = true를 넣는 대신 다음과 같이 끝에 추가 할 수 있습니다.

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&key=SERVERKEY&sensor=true

이렇게하면 문제가 확실히 해결되고 .NET 용 서버 키를 사용해야합니다 Places API.

편집하다

웹 URL이 지난 몇 년 동안 변경되었다고 생각합니다. 지금 여기에서 개발자 콘솔에 액세스 할 수 있습니다-https: //console.developers.google.com/apis/dashboard

  • 개발자 콘솔 ( https://console.developers.google.com/) 로 이동하거나 세부 정보의 링크를 사용하여 API 대시 보드로 직접 이동합니다.
  • 개발자 콘솔 의 왼쪽 탐색 패널에서 라벨 을 찾습니다.
  • 프로젝트 선택
  • 왼쪽 탐색 패널에서 자격 증명 을 선택합니다.
  • 필요에 따라 상단 탐색 모음 에서 자격 증명 유형을 만들 수 있습니다 .

이 답변이 귀하와 다른 시청자에게 도움이되기를 바랍니다. 행운을 빕니다 .. :)


8
매우 중요 4) 필드에 IP 주소를 입력하고 더 많은 IP 주소가있는 경우 모든 한 줄에 추가 할 수 있습니다. 참고 : 테스트 목적으로 사용하려는 경우에만 IP 주소를 입력하십시오. 그렇지 않으면 IP 주소 섹션을 비워 둡니다.
Sheraz 아마드 Khilji에

6
맞습니다. 테스트 목적으로 IP 주소 / 주소 만 지정하십시오. 그렇지 않으면 비워 둡니다. 특정 기기 / 앱에서만 작동하도록 앱 또는 API 키를 제한하고 있기 때문입니다.
mike20132013 2013 년

1
@johnshumon 예, 추측합니다 .. 오랫동안 답변을 업데이트하지 않았습니다. 새로운 API 변경 일 수 있습니다.
mike20132013

1
Google Places API 웹 서비스도 활성화 된 API인지 확인하고 싶을 수도 있습니다.
Justin Wilson

1
Google API가 이러한 다양한 일반 오류 제공을 중지하려면 새 "프로젝트"가 이제 Google 클라우드 결제 계정에 연결되어야한다는 사실을 발견하기 전에 몇 시간 동안이 문제를 해결했습니다. 임계 값을 $ 0으로 설정할 수 있으므로 사용량이 허용 된 할당량을 초과하는 경우 요금이 부과되지 않습니다.
Sparky

15
  1. 키 선택
  2. API 제한 탭
  3. API 키 선택
  4. 저장
  5. 응용 프로그램 제한-> 없음을 선택합니다.
  6. 저장

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력


나는 몇 API 제한에 나열된 서비스 그러나 지오 코딩하지 않았다
무하마드 Umer을

매력처럼 작동했습니다. 지오 코딩을 시도해 주셔서 감사합니다. 지적한대로 앱 제한을 없음으로 설정했으며 작동했습니다.
Ravi

4
제한 사항 : 매우 위험한 것은 없습니다.
Deniss M.

9
보안을 비활성화하는 것은 해결책이 아닙니다!
Bartholomej

API 키를 제한없이 두지 마십시오! Google API가 이러한 다양한 일반 오류 제공을 중지하려면 이제 새 '프로젝트'를 결제 계정에 연결해야합니다. 임계 값을 $ 0으로 설정할 수 있으므로 사용량이 허용 된 할당량을 초과하는 경우 요금이 부과되지 않습니다.
Sparky

14

사용자에게 할당 된 API 키 외에도 Google은 REFERRER또는 IP 주소를 확인하여 수신 요청의 소스를 확인합니다 . curl에서 예제를 실행하려면 Google API 콘솔Server Key 에서 새로 만듭니다 . 생성하는 동안 서버의 IP 주소를 제공해야합니다. 이 경우 로컬 IP 주소가 됩니다. IP 주소를 만들고 허용 목록에 추가 했으면 curl에서 새 API 키를 사용할 수 있습니다.Server Key

내 생각 엔 아마 당신은 당신 Browser Key의 IP 주소를 화이트리스트에 올릴 필요가 없지만 대신 REFERRER유효성 검사를 위해 HTTP 헤더 태그를 사용하는 API 키를 만들었을 것입니다 . curl은 기본적으로이 태그를 보내지 않으므로 Google에서 요청을 확인하지 못했습니다.


1+ Google의 Geocode 서비스를 사용하려면 서버 API 키를 생성해야합니다. 또한 Google의 API 콘솔에서 Google지도 지오 코딩 서비스를 활성화해야합니다. 감사합니다 !!
Sumit Munot 2014

Google API가 이러한 다양한 일반 오류 제공을 중지하려면 새 "프로젝트"가 이제 Google 클라우드 결제 계정에 연결되어야한다는 사실을 발견하기 전에 몇 시간 동안이 문제를 해결했습니다. 임계 값을 $ 0으로 설정할 수 있으므로 사용량이 허용 된 할당량을 초과하는 경우 요금이 부과되지 않습니다.
Sparky

6

Google Places API는 현재 Google API 콘솔에서 생성 된 Android 또는 iOS 키를 지원하지 않습니다. 현재 서버 및 브라우저 키만 지원됩니다.


1
흥미 롭군요 ... Android 또는 iOS 앱에서 사용할 키를 어떻게 생성합니까?
Graham Perks

브라우저 키는 Android 및 iOS에서 작동합니다. Google API 콘솔에서 브라우저 키 가져
오기

추가 노력 없이는 그렇지 않습니다. 나는 어제 실망한 하루 후에 이것을 알아 냈습니다. 앱에 대한 추가 단계가 있습니다. stackoverflow.com/a/58136437/434004
Graham Perks 19

3

이 작업을 허용하지 않는 방식으로 제한 한 API 키를 사용하려고합니다.

Google에 따르면 :

Note: If you need to call web, web service, and/or mobile APIs from the same (client-side) app, create and restrict multiple keys.

따라서 올바른 방법은 또 다른 API 키를 만들고이 문제에 대한 올바른 제한을 선택하는 것입니다. 귀하의 경우에는 "애플리케이션 제한"에서 "IP 주소"를 선택하고 "항목 추가"를 사용하여 서버 IP를 추가하십시오. 빈 목록을 남겨두면 작동하지 않으며 Google이 귀하의 제한을 "없음"으로 변경합니다.

또한 "API 제한"(귀하의 경우 "Geocoding API")에서 관련 API를 추가하는 것을 잊지 마십시오.

마지막으로 Google은 앱을 Google Cloud Billing 계정에 연결할 때까지이 API의 사용을 차단합니다. 따라서 아직 수행하지 않은 경우 성공적으로 응답을 받으면 먼저 수행해야한다는 메시지가 표시됩니다 (무료 시작 패키지가 있습니다).


2

리퍼러없이 키를 생성하고 리퍼러 주소를 입력하지 마십시오


당신은 정교한 기쁘게 수
사가르 Devanga에게

2
키를 생성하는 동안 Referer 주소를 추가 할 수있는 곳으로 여기에 무언가를 추가했는지 확인하십시오. 추가 된 클리어 그것은 경우
DeadlyDroid

2

Google Place API를 사용하려면 API를 호출 할 때 포함되어야하는 리퍼러 HTTP 헤더가 필요합니다.

HTTP 헤더 'Referer : yourdomain.com'을 포함하면 응답 문제가 해결됩니다.


1
이것이 질문에 대한 답이 될 수 있지만, 당신이하고있는 일을 설명하기 위해 당신의 대답에 텍스트를 넣는 것은 항상 좋은 생각입니다. 좋은 답을 쓰는 방법을 읽으십시오 . 또한 일부 코드를 포함해야합니다.
Jørgen R

당신은 미리보기 제공시겠습니까
사가르 Devanga

다음은 제가 한 작업이며 완벽하게 작동했습니다. var options = {url : url, headers : {Referer : ' xxx.herokuapp.com '}}; request.get (options, function (...
Florida G.

1

또한 주어진 프로젝트에 해당 API를 사용 설정해야합니다.

https://console.developers.google.com/apis/library?project=projectnamehere


1

최신 버전의 API의 경우 정반대가 사실 인 것 같습니다.

URL을 호출 할 때 https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key>다음 오류가 발생했습니다.

Google Maps Platform API에 대한 각 요청을 인증하려면 API 키를 사용해야합니다. 자세한 내용은 http://g.co/dev/maps-no-account 를 참조하세요.

주문을 전환하면 https://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address>정상적으로 작동했습니다.

위에서받은 오류 메시지는 브라우저에서 URL로 직접 이동할 때받은 메시지입니다. 소프트웨어 프로그램에서 API를 호출 할 때 기본적으로 다음 메시지가 포함 된 HTML 응답을 받았습니다.

죄송합니다 ... 귀하의 컴퓨터 또는 네트워크에서 자동화 된 쿼리를 보내는 중일 수 있습니다. 사용자를 보호하기 위해 지금은 귀하의 요청을 처리 할 수 ​​없습니다.


Google API가 이러한 다양한 일반 오류 제공을 중지하려면 새 "프로젝트"가 이제 Google 클라우드 결제 계정에 연결되어야한다는 사실을 발견하기 전에 몇 시간 동안이 문제를 해결했습니다. 임계 값을 $ 0으로 설정할 수 있으므로 사용량이 허용 된 할당량을 초과하는 경우 요금이 부과되지 않습니다.
Sparky


0

인증, 할당량, 가격 및 정책 인증 Directions API를 사용하려면 먼저 API를 활성화하고 적절한 인증 자격 증명을 얻어야합니다. 자세한 내용은 Google Maps Platform 시작하기를 참조하세요.

할당량 및 가격 Directions API에 설정된 할당량 및 가격 책정에 대한 자세한 내용은 사용량 및 청구 페이지를 검토하십시오.

정책 Directions API의 사용은 API 정책을 따라야합니다.

더 많은 정보 : 방문 : --- https://developers.google.com/maps/documentation/directions/start?hl=en_US


-2
  url = https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving&key=AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY

AppDelegate에서만 추가하십시오.

            GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")

이 URL에서 키를 제거하십시오.

이제 URL은

https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving

-3

방향 API와 지오 코딩 API를 모두 비활성화하고 다시 활성화하십시오.

5-10 초 동안 만 작동하며 자동으로 비활성화됩니다.

그것은 당신이 과제를 테스트하는 데 5-10 초 밖에 없다는 것을 의미합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.