Programming

Google Maps JavaScript API RefererNotAllowedMapError

procodes 2020. 7. 26. 13:41
반응형

Google Maps JavaScript API RefererNotAllowedMapError


고객 중 한 사람을위한 위치 정보 앱을 개발하려고하는데 먼저 자체 도메인에서 테스트하고 싶습니다.

Google Maps JavaScript API에 서명했으며 유효한 브라우저 키가 있으며 도메인 (www.grupocamaleon.com)에서 해당 키를 사용할 수있는 권한이 부여되었습니다.

그러나 가장 쉬운 예조차도 오류없이 실행할 수는 없습니다.

우리는 도메인과 키를 통해 다음과 같은 데모를 가지고 있습니다.

(1) http://www.grupocamaleon.com/boceto/aerial-simple.html

그러나 작동하지 않으며 Firebug 콘솔은 다음과 같이 말합니다.

"Google Maps API 오류 : Google Maps API 오류 : RefererNotAllowedMapError (RefererNotAllowedMapError의 Google 문서 링크) 승인 될 사이트 URL : (1)"

자격 증명 페이지에 리퍼러를 추가 할 가능성이 없어 현재 리퍼러 추가와 관련된 솔루션을 사용할 수 없습니다.

내 자격 증명 페이지 :

여기에 이미지 설명을 입력하십시오

왜 그 오류가 발생합니까? 어떻게 고칠 수 있습니까?


나는 이것이 이미 몇 가지 답변이있는 오래된 질문이라는 것을 알고 있지만, 같은 문제가 있었고 문제는 console.developers.google.com에 제공된 예제를 따르고 형식으로 내 도메인을 입력했다는 것입니다 *.domain.tld/*. 이것은 전혀 작동하지 않았다, 나는처럼이에 변화의 모든 종류를 추가하는 시도 domain.tld, domain.tld/*, *.domain.tld

나를 위해 그것을 해결 한 것은 실제 프로토콜추가하는 것이 었 습니다. http://domain.tld/*내 사이트에서 작동하는 데 필요한 유일한 것입니다. https://domain.tld/*HTTPS로 전환하려면 추가해야 할 것 같습니다 .

업데이트 : Google은 http이제 다음 을 포함하도록 자리 표시자를 업데이트했습니다 .

Google Maps API 리퍼러 입력 필드


Google에 오면 API 자격 증명 페이지에서 허용하는 것보다 더 똑똑합니다. (나는 거기에 일하는 두 아들이 있기 때문에 알고 있습니다.)

"추천자"목록은 생각보다 훨씬 까다 롭습니다. (물론, 그것은 해야 더 관대합니다.) 여기에 나에게 갔다 몇 가지 규칙이 있습니다 시간을 발견하기가 :

아마도 다른 규칙이 있을지 모르지만 이것은 지루한 추측 게임입니다.


문서에 따르면 'RefererNotAllowedMapError'는

Google Maps JavaScript API를로드하는 현재 URL이 허용 된 리퍼러 목록에 추가되지 않았습니다. Google Developers Console에서 API 키의 리퍼러 설정을 확인하십시오.

개인 / 직장 사용을 위해 Google Maps Embed API를 설정했으며 지금까지 HTTP 참조자를 지정하지 않았습니다. 오류가 없습니다. 설정은 방문하는 URL이 등록되지 않았거나 허용되지 않았다고 Google에 알려야합니다.

여기에 이미지 설명을 입력하십시오


양식 필드에서 Google이 채우는 예제에 결함이 있음을 알게 될 때까지 많은 추천자 변형을 시도하고 5 분 동안 기다렸습니다. 그들은 보여줍니다 :

*.example.com/*

그러나 도메인 이름 subdomain.있거나 www.앞에 있는 경우에만 작동합니다 . 다음은 즉시 나를 위해 일했습니다 (Google 예제에서 선행 기간 생략).

*example.com/*

변경 만하면 설정이 적용 되려면 최대 5 분이 걸릴 수 있습니다.


올바른 APIS도 활성화되어 있는지 확인하십시오.

나는 위의 모든 별표, 도메인 tld, 슬래시, 백 슬래시 및 모든 것을 시도했지만 결국에는 마지막 희망으로 하나의 URL 만 입력했습니다.

이 모든 것이 작동하지 않았으며 마침내 Google에서 사용하려는 API를 지정해야한다는 것을 깨달았습니다 (스크린 샷 참조)

여기에 이미지 설명을 입력하십시오

필요한 기능이 없었습니다 (Maps JavaScript API였습니다).

일단 활성화하면 다음을 사용하여 모두 잘 작동했습니다.

http://www.example.com/ *

나는 그것이 누군가를 돕기를 바랍니다! :)


구글 문서 에 따르면 이것은 구글url 맵스 API를 사용하고 있기 때문에 발생 했습니다 not registered.list of allowed referrers

편집하다 :

에서 Google 문서 도구

지정된 도메인의 모든 하위 도메인도 인증됩니다.

http://example.com 이 인증 된 경우 http://www.example.com 도 인증됩니다. 반대의 경우는 사실이 아닙니다. http://www.example.com 이 인증 된 경우 http://example.com 이 반드시 인증되지는 않습니다.

따라서 http://testdomain.com도메인을 구성 http://www.testdomain.com하면 작업이 시작됩니다.


나는 당신조차도 HTTP Referreres충분히 유효하고 잘못된 API Restrictions원인 세트 라는 것을 알았습니다 Google Maps JavaScript API error: RefererNotAllowedMapError.

예를 들면 다음과 같습니다.

  • 키에 Javascript API를 사용하고 있습니다.
  • 추가 http://localhost/*Application Restrictions / HTTP Referrences
  • Maps Embed API대신에 선택하십시오Maps Javascript API
  • 이 원인 RefererNotAllowedMapError

몇 년 동안 많은 솔루션이 제안되었으며 일부는 더 이상 작동하지 않고 일부는 작동하지 않았으므로 2018 년 7 월 말마다 최신 작업이 수행됩니다.

설정:

Google Maps JavaScript API가 제대로 작동해야합니다…

  • API를 호출하는 여러 도메인 : example.comexample.net
  • 임의의 하위 도메인 : user22656.example.com
  • 모두 안전하고 표준 HTTP 프로토콜 : http://www.example.com/https://example.net/
  • 무한 경로 구조 (예 : 수많은 다른 URL 경로)

해결책:

  • 실제로 자리 표시 자의 패턴을 사용합니다 <https (or) http>://*.example.com/*.
  • 프로토콜을 생략하지 않고 도메인 당 두 개의 항목을 추가합니다 (프로토콜 당 하나씩).
  • 하위 도메인에 대한 추가 항목 (앞에 *.호스트 이름이 있음).
  • RefererNotAllowedMapError올바른 구성을 사용하여 오류가 계속 발생하고 충분한 시간을 기다렸다 는 느낌이 들었 습니다. 자격 증명 키를 삭제하고 요청을 반복하고 (지금 가져 오기 InvalidKeyMapError) 새 자격 증명을 만들었습니다 (정확히 동일한 설정 사용).
  • 단순한 프로토콜과 도메인을 추가해도 하위 도메인이 포함되지 않은 것 같습니다.
  • 도메인 중 하나의 경우 작업 구성은 다음과 같습니다.

Google API 구성의 스크린 샷

(텍스트로)

Accept requests from these HTTP referrers (web sites)
    https://*.example.com/*
    https://example.com/*
    http://*.example.com/*
    http://example.com/*

여기에 이미지 설명을 입력하십시오

이 HTTP 참조 자 (웹 사이트)의 요청을 수락하십시오.

localhost 디렉토리 경로 작성


api 자격 증명 페이지의 스크린 샷을 표시하지만 "브라우저 키 1"을 클릭 한 다음 참조 페이지를 추가해야합니다.


더 깊은 중첩 페이지

폴더에 프로젝트가 있거나 예를 들어 중첩 된 페이지가있는 경우

http://yourdomain.com/your-folder/your-page 당신은 이것을 입력 할 수 있습니다

http://yourdomain.com/*/*

/*/*/*얼마나 멀리 가야하는지 따라 중요한 부분

*의지가 일치하지 /않거나 더 깊은 길로 들어 가지 않는 것 같습니다 ..

이것보다 더 깊은 중첩이 없으면 전체 도메인 액세스가 가능합니다.


같은 오류가 발생했습니다.

여기에 이미지 설명을 입력하십시오

이 링크는 API 키 제한을 설정하는 방법에 대해 설명합니다. https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions

필자의 경우 문제는이 제한을 사용하고 있다는 것입니다.

HTTP 참조 자 (웹 사이트)이 HTTP 참조 자 (웹 사이트)의 요청을 수락하십시오 (선택 사항) *를 와일드 카드에 사용하십시오. 이 입력란을 비워두면 모든 추천인의 요청이 수락됩니다. 프로덕션에서이 키를 사용하기 전에 참조자를 추가해야합니다.https://*.example.net/*

이는 https://www.example.net 또는 https://m.example.net 또는 https://www.example.net/San-salvador/ 와 같은 URL이 작동 함을 의미합니다 . 그러나 https://example.net 또는 https://example.net 또는 https://example.net/San-salvador/ 와 같은 URL 은 작동하지 않습니다. 나는 단순히 두 번째 리퍼러를 추가해야했습니다.

https://example.net/*

그로 인해 문제가 해결되었습니다.


  1. 결제가 사용 설정되어 있는지

  2. 귀하의 웹 사이트가 Google 콘솔 에 추가되었습니다

  3. 귀하의 웹 사이트는 앱의 리퍼러에 추가됩니다.

  4. (www와 none www 모두에 와일드 카드 사용)

http://www.example.com/ * 및 http://example.com/ *

  1. Javascript Maps가 활성화되어 있고 올바른 자격 증명을 사용하고 있습니다

  2. 위의 Google 콘솔을 사용하기 위해 웹 사이트가 DNS에 추가되었습니다.

  3. 작동 후 미소!


Google 에서이 팁을 사용하여 마침내 작업했습니다. ( https://support.google.com/webmasters/answer/35179 )

도메인과 사이트에 대한 정의는 다음과 같습니다. 이러한 정의는 Search Console 확인에만 해당됩니다.

http://example.com/ - A site (because it includes the http:// prefix)
example.com/ - A domain (because it doesn't include a protocol prefix)
puppies.example.com/ - A subdomain of example.com
http://example.com/petstore/ - A subdirectory of http://example.com site

I add 2 website domains, set "*" in subdomain is not working but specific subdomain "WWW" and non-subdomain have been worked for my websites using the same Google Map API key.

dont' use "*" in subdomain

Hope it help.


Wildcards (asterisks) ARE NOT allowed on subdomains.

  • WRONG: *.example.com/*
  • RIGHT: example.com/*

Forget what Google says on the placeholder, it is not allowed.


This is another sh1tty Google product with a terrible implemenation.

The problem I have found with this is that if you restrict an API key by IP address, it wont work... BUT far be it from Google to make this point clear... It wasn't until troubleshooting and researching I found:

API keys with an IP addresses restriction can only be used with web services that are intended for use from the server side (such as the Geocoding API and other Web Service APIs). Most of these web services have equivalent services within the Maps JavaScript API (for example, see the Geocoding Service). To use the Maps JavaScript API client side services, you will need to create a separate API key which can be secured with an HTTP referrers restriction (see Restricting an API key).

https://developers.google.com/maps/documentation/javascript/error-messages

FFS Google... Pretty important piece of information that would be good to clarify on setup...


I struggled to make this work as well, but here are some pointers:

  • The URLs set as referrers include http, e.g. http://example.com/*
  • Google Maps JavaScript API was enabled
  • Billing was set-up on this account

Once all of this above was resolved, the maps displayed as expected.


http://www.example.com/* has worked for me after days and days of trying.


None of these fixes were working for me until I found out that RefererNotAllowedMapError can be caused by not having a billing account linked to the project. So make sure to activate your free trial or whatever.


I was attempting to use the Places API (Autocomplete) and had to also enable the Maps Javascript API from within Google Cloud Console before the Places API would work.


Check your decklaration on site. To load the Google Maps JavaScript API, use a script tag like this

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer></script>

I using this declaration on my Wordpress site in function.php file

wp_enqueue_script("google-maps-v3", "//maps.google.com/maps/api/js?key=YOUR_API_KEY", false, array(), false, true);

I have set API key on this format, and its works fine

http://my-domain-name(without www).com/*

this declaration not working

*.my-domain-name.com/*

Removing the restrictions (to None) worked for me.


In my experience

http://www.example.com

worked fine But, https required /* at the end


Chrome's Javascript console suggested I declare the entire page address in my HTTP referrer list, in this instance http://mywebsite.com/map.htm Even though the exact address is http://www.mywebsite.com/map.htm - I already had wildcard styles listed as suggested by others but this was the only way it would work for me.


This worked for me. There are 2 major categories of restrictions under api key settings:

  • Application restrictions
  • API restrictions

Application restrictions:

리퍼러 섹션의 맨 아래에 웹 사이트 URL " http://www.grupocamaleon.com/boceto/aerial-simple.html "을 추가하십시오. 섹션 오른쪽에는 다양한 요구 사항에 따라 예제 규칙이 있습니다.

응용 프로그램 제한

API 제한 사항 :

API 제한에 따라 드롭 다운 목록에서 'Maps Javascript API' 를 명시 적으로 선택해야합니다. 고유 키는 Google지도 API (아마도)를 호출하는 데만 사용되므로 아래 스냅에서 볼 수 있듯이 저장하기 때문입니다. 나는 이것이 당신을 위해 작동하기를 바랍니다 ..... 나를 위해 일했습니다

여기에 이미지 설명을 입력하십시오

스크립트를 확인하십시오 :

또한 스크립트 태그 내부의 잘못된 키 공급으로 인해 문제가 발생할 수 있습니다. 다음과 같아야합니다.

  <script async defer src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&callback=initMap"
  type="text/javascript"></script>

참고 URL : https://stackoverflow.com/questions/35288250/google-maps-javascript-api-referernotallowedmaperror

반응형