Google Maps JavaScript API RefererNotAllowedMapError


122

เรากำลังพยายามพัฒนาแอป geoplacement สำหรับลูกค้าของเราและเราต้องการทดสอบก่อนในโดเมนของตัวเอง

เราได้ลงนามสำหรับ Google Maps JavaScript API และเรามีคีย์เบราว์เซอร์ที่ถูกต้องและโดเมนของเรา www.grupocamaleon.com ได้รับอนุญาตให้ใช้คีย์นั้น

แต่เราไม่สามารถสร้างแม้แต่ตัวอย่างที่ง่ายที่สุดเพื่อให้ทำงานโดยไม่มีข้อผิดพลาด

เรามีในโดเมนของเราและด้วยรหัสของเราการสาธิตต่อไปนี้:

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

แต่ไม่ได้ผลและคอนโซล Firebug พูดว่า:

"ข้อผิดพลาด Google Maps API: ข้อผิดพลาดของ Google Maps API: RefererNotAllowedMapError (ลิงก์ไปยังเอกสารของ Google ใน RefererNotAllowedMapError) URL ไซต์ของคุณที่จะได้รับอนุญาต: (1)"

หน้าข้อมูลรับรองของฉันไม่มีความเป็นไปได้ในการเพิ่มผู้อ้างอิงเพื่อยอมรับดังนั้นจึงไม่สามารถแก้ปัญหาเกี่ยวกับการเพิ่มผู้อ้างอิงได้ในขณะนี้

หน้าข้อมูลรับรองของฉัน:

ใส่คำอธิบายภาพที่นี่

ทำไมเราถึงได้รับข้อผิดพลาดนั้น? เราจะแก้ไขได้อย่างไร?


ซ้ำเป็นไปได้ของGoogle maps อ้างอิง API ไม่ได้รับอนุญาต รหัสของคุณใช้ได้กับฉัน (กับรหัสของฉัน) ดังนั้นจึงมีบางอย่างผิดปกติกับคีย์ของคุณผู้อ้างอิงที่ได้รับอนุญาตหรือบริการที่เปิดใช้งานเพื่อใช้กับรหัสนี้
geocodezip

แต่ฉันไม่มีความเป็นไปได้เช่นนั้นในหน้าข้อมูลรับรองของฉันดังที่คุณเห็นในคำตอบของฉันที่นี่ คำแนะนำใด ๆ ?
Grupo Camaleón Creativos

ฉันเป็นมือใหม่และฉันยังไม่รู้ว่าจะใช้ไซต์นี้อย่างไรดี ขออภัยในความไม่สะดวก. ฉันได้แก้ไขคำถามของฉันแล้วโดยเพิ่มข้อมูลในหน้าข้อมูลรับรองของฉัน วิธีแก้ปัญหาบางอย่างที่อ้างถึงเกี่ยวข้องกับการเพิ่มผู้อ้างอิงสิ่งที่ฉันไม่สามารถทำได้ในขณะนี้
Grupo Camaleón Creativos

หากคุณไม่สามารถเปลี่ยนผู้อ้างอิงสำหรับคีย์ได้ให้ลบออกหรือแทนที่ด้วยคีย์ที่คุณควบคุม ไม่จำเป็นต้องใช้คีย์ แต่มีประโยชน์ที่จะรวมไว้ด้วย
geocodezip

1
ฉันสร้างคีย์ใหม่โดยไม่มีข้อ จำกัด APP หรือ API มันบอกว่าหมดอายุคีย์เป็นเวลา 10 นาทีจากนั้นเริ่มทำงาน ต่อไปฉันพยายามเพิ่มเพียง Places API แต่มันถูกเรียกจากเว็บและบอกว่า: Google Maps JavaScript API error: RefererNotAllowedMapErrorแม้จะรอแล้วก็ตาม จากนั้นฉันก็ลองMaps JavaScript APIพูดเรื่อยRefererNotAllowedMapErrorๆ พยายามรีเฟรชหน้าและในที่สุดก็เริ่มทำงานหลังจากผ่านไป 2 นาที 40 วินาที ดังนั้นระวังนรก แต่ไม่มีอะไรทำงานสำหรับฉันและก็ทำเช่นนั้นMaps JavaScript APIเท่านั้น คุณเพียงแค่ต้องรอมาก
psycho brm

คำตอบ:


168

ฉันรู้ว่านี้เป็นคำถามเดิมที่มีอยู่แล้วหลายคำตอบ แต่ผมมีปัญหาเดียวกันนี้และสำหรับผมปัญหาคือการที่ฉันตามตัวอย่างที่มีให้ใน console.developers.google.com *.domain.tld/*และเข้าโดเมนของฉันในรูปแบบ นี้ไม่ได้ทำงานที่ทั้งหมดและฉันพยายามเพิ่มทุกชนิดของรูปแบบนี้เช่นdomain.tld, domain.tld/*, *.domain.tldฯลฯ

สิ่งที่แก้ไขได้สำหรับฉันคือการเพิ่มโปรโตคอลจริงด้วย http://domain.tld/*เป็นคนเดียวที่ฉันต้องการเพื่อให้มันทำงานบนไซต์ของฉัน ฉันเดาว่าฉันจะต้องเพิ่มhttps://domain.tld/*ถ้าฉันจะเปลี่ยนไปใช้ HTTPS

อัปเดต: Google ได้อัปเดตตัวยึดตำแหน่งเพื่อรวมไว้ในhttpขณะนี้:

ช่องป้อนข้อมูลผู้อ้างอิง Google Maps API


1
ฉันยืนยัน: ชุดค่าผสมเดียวที่อนุญาตให้ฉันใช้ API คือhttp://www.---.com/*
Marco Panichi

6
คำตอบนี้เป็นคำตอบเดียวที่ทำให้รหัสของฉันใช้งานได้ ฉันยืนยันได้ว่าตัวอย่างที่ Google ให้ไว้ใช้ไม่ได้
Jargs

1
ขอบคุณ @Google ที่ให้ข้อมูลเท็จกับเรา http://----.com/*เป็นรูปแบบที่ถูกต้อง
Michael Yaeger

2
หากคุณมีหลายโดเมนย่อยคุณสามารถทำได้ http: //*.example.com และ https: //*.example.com เพื่อให้ครอบคลุมทุกฐาน
tim.baker

1
บางที Google อาจอัปเดตคุณสมบัตินั้น - สำหรับฉันมันทำงานได้โดยไม่ต้องใช้โปรโตคอล ฉันมีexample.com/*ในช่องการตั้งค่าและใช้งานได้ตั้งแต่https://example.com/map
Andy

21

มาที่ Google พวกคุณฉลาดกว่าหน้าข้อมูลรับรอง API (ฉันรู้เพราะฉันมีลูกชายสองคนทำงานที่นั่น)

รายชื่อ "ผู้อ้างอิง" มีความสำคัญมากกว่าที่จะเปิดเผย (แน่นอนว่ามันควรจะให้อภัยมากกว่านี้) นี่คือกฎบางอย่างที่ฉันใช้เวลาหลายชั่วโมงในการค้นพบ:

  • ลำดับในรายการมีความสำคัญ การย้าย URL ของคุณขึ้นในรายการอาจทำให้ใช้งานได้
  • ต้องมีคำนำหน้า "http: //"
  • แม้แต่ "localhost" ก็ยังต้องการ: " http: //localhost/foo/bar.html "
  • การต่อท้าย *เป็นสัญลักษณ์แทนดูเหมือนจะใช้งานได้ราวกับว่าเป็นการเปรียบเทียบสตริง
  • แม้ว่า " http: //localhost/foo/bar.html ", " http: //localhost/foo/bar.html? arg = 1 " จะไม่ทำงาน (สัญลักษณ์แทนจะช่วยได้หรือไม่?)
  • สำหรับ prod dev ทั้งสองมี (อย่างน้อย) สองแถว: " http: //localhost/foo/bar.html " และ " http://my.site.com/foo/bar.html "
  • หมายเลขพอร์ต (8085? 4000?) ดูเหมือนจะไม่จำเป็น

อาจมีกฎอื่น ๆ แต่นี่เป็นเกมเดาที่น่าเบื่อ


1
เกี่ยวกับคำตอบก่อนการแก้ไขฉันก็หมดความอดทนเช่นกัน ดูเหมือนว่าสัญลักษณ์แทน (*) จะใช้ได้เฉพาะในส่วนท้ายของที่อยู่ ( http://my.site.com/*) หรือในโดเมนย่อย ( http://*.site.com) ในกรณีอื่น ๆ ก็ไม่ได้ผล
Cristian Traìna

1
ฉันใส่ข้อ จำกัด อย่างไม่ถูกต้องเพื่ออนุญาตให้ใช้ Places API เท่านั้น (แท็บถัดจากข้อ จำกัด ผู้อ้างอิง) ส่งผลให้เกิดข้อผิดพลาด RefererNotAllowedMapError เดียวกัน
Matt Greer

การเพิ่ม www. ชื่อโดเมนของฉันแก้ไขให้ฉัน ฉันไม่แน่ใจว่าการเพิ่มสัญลักษณ์แทน (*) ที่ส่วนท้ายของโดเมนเช่น(https://www.my-site.com/*)ได้แก้ไขปัญหาแล้วหรือยัง
Mugé

แอพมือถือไอออนิกของฉันมีโดเมนเป็นไอออนิก: // แอพ # / แท็บ ฉันจะรวมไว้ในข้อ จำกัด ได้อย่างไร ฉันลองหลาย ๆ ชุด แต่ก็ไร้ผล เช่น ionic: // app # / tabs, httpionic: // app # / tabs, httpsionic: // app # / tabs, ionic: // *, ionic: // app # / *, httpionic: // *, ......
AUK4SO

@ AUK4SO - เครื่องหมายปอนด์ ( #) มีความหมายพิเศษใน urls ดู<a name=...>. หรือคุณหมายถึงiconic://1234/foo?
Rick James

18

ตามเอกสารนี้ 'RefererNotAllowedMapError' หมายถึง

URL ปัจจุบันที่โหลด Google Maps JavaScript API ไม่ได้ถูกเพิ่มลงในรายชื่อผู้อ้างอิงที่อนุญาต โปรดตรวจสอบการตั้งค่าผู้อ้างอิงของคีย์ API ของคุณใน Google Developers Console

ฉันตั้งค่า Google Maps Embed API สำหรับการใช้งานส่วนตัว / ที่ทำงานของฉันเองและจนถึงขณะนี้ยังไม่ได้ระบุผู้อ้างอิง HTTP ใด ๆ ฉันลงทะเบียนไม่มีข้อผิดพลาด การตั้งค่าของคุณต้องทำให้ Google คิดว่า URL ที่คุณกำลังเยี่ยมชมไม่ได้รับการลงทะเบียนหรือได้รับอนุญาต

ใส่คำอธิบายภาพที่นี่


15

เพียงแค่เตือนว่าหากคุณเพิ่งเปลี่ยนอาจใช้เวลาถึง 5 นาทีเพื่อให้การตั้งค่ามีผล


15

ฉันลองใช้รูปแบบผู้อ้างอิงหลายรูปแบบและรอ 5 นาทีเช่นกันจนกว่าฉันจะรู้ว่าตัวอย่างที่ Google เติมในฟิลด์แบบฟอร์มนั้นมีข้อบกพร่อง พวกเขาแสดง:

*.example.com/*

อย่างไรก็ตามจะใช้ได้เฉพาะเมื่อคุณมีsubdomain.หรือwww.อยู่หน้าชื่อโดเมนของคุณ สิ่งต่อไปนี้ใช้ได้ผลสำหรับฉันทันที (ละเว้นช่วงเวลานำจากตัวอย่างของ Google):

*example.com/*

9
ความคิดที่ไม่ดี - ใครบางคนสามารถสร้างhackexample.comและใช้ API ของคุณได้
HyderA

3
@HyderA - มีความเป็นไปได้มากกว่าที่จะมีคนลงทะเบียนบัญชี Google ฟรีจำนวนมากเพื่อโหลดแผนที่เพิ่มเติม
60

@HyderA พวกเขายังต้องการกุญแจดังนั้นจึงไม่ใช่โอกาสที่ดี แต่คุณพูดถูกยังคงมีความเสี่ยง
Eoin

แอพมือถือไอออนิกของฉันมีโดเมนเป็นไอออนิก: // แอพ # / แท็บ ฉันจะรวมไว้ในข้อ จำกัด ได้อย่างไร ฉันลองหลาย ๆ ชุด แต่ก็ไร้ผล เช่น ionic: // app # / tabs, httpionic: // app # / tabs, httpsionic: // app # / tabs, ionic: // *, ionic: // app # / *, httpionic: // *, ......
AUK4SO

10

ตามเอกสารของ Google สิ่งนี้เกิดขึ้นเนื่องจากurlคุณใช้ Google Maps 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จะเริ่มทำงาน


ในกรณีของฉันมีการกำหนดค่า DNS สำหรับโดเมนไม่ถูกต้อง ตัวอย่างเช่น: www.testdomain.com ทำงานได้ดี testdomain.com ไม่ทำงานทำให้เกิดข้อผิดพลาด
Tahir Khalid

1
ดูเหมือนว่าตรรกะของสิ่งนั้นจะกลับกัน? เว้นแต่ฉันจะขาดอะไรไป
twobob

10

ตรวจสอบว่าคุณเปิดใช้งาน APIS ที่ถูกต้องแล้วเช่นกัน

ฉันลองใช้ทั้งหมดข้างต้นเครื่องหมายดอกจันโดเมน tlds เครื่องหมายทับไปข้างหน้าแบ็กสแลชและทุกอย่างแม้ในท้ายที่สุดจะป้อนเพียง URL เดียวเพื่อเป็นความหวังสุดท้าย

ทั้งหมดนี้ใช้ไม่ได้ผลและในที่สุดฉันก็รู้ว่า Google ต้องการให้คุณระบุตอนนี้ว่าคุณต้องการใช้ API ใด (ดูภาพหน้าจอ)

ใส่คำอธิบายภาพที่นี่

ฉันไม่มีสิ่งที่ต้องการเปิดใช้งาน (สำหรับฉันนั่นคือ Maps JavaScript API)

เมื่อฉันเปิดใช้งานทุกอย่างทำงานได้ดีโดยใช้:

http://www.example.com/ *

ฉันหวังว่าจะช่วยใครสักคน! :)


9

ไม่อนุญาตให้ใช้สัญลักษณ์แทน (เครื่องหมายดอกจัน) ในส่วนของโดเมนย่อย

  • ผิด: * .example.com / *
  • ขวา: example.com/*

อย่าลืมสิ่งที่ Google พูดบนตัวยึดตำแหน่งไม่ได้รับอนุญาต


ฉันจะเพิ่มสิ่งต่อไปนี้ได้อย่างไร: sc.maindomain.com/Survey/UpdateInspection/102
dE Source

1
คุณสามารถตั้งค่าเป็นsc.maindomain.com/*
Daniel Loureiro

8

ผมพบว่าแม้คุณHTTP Referreresจะเพียงพอที่ถูกต้อง, การตั้งค่าที่ไม่ถูกต้องของสาเหตุAPI RestrictionsGoogle Maps JavaScript API error: RefererNotAllowedMapError

ตัวอย่างเช่น:

  • คุณกำลังใช้ Javascript API สำหรับคีย์
  • เพิ่มhttp://localhost/*ไปที่Application Restrictions / HTTP Referrences
  • เลือกMaps Embed APIแทนMaps Javascript API
  • สาเหตุนี้ RefererNotAllowedMapError

ใช่ในกรณีของฉันการจัดประเภทไม่ถูกต้องเป็นปัญหา
Andriy F.

แต่ความปลอดภัยล่ะ? ทุกคนสามารถใช้รหัสของฉันใน localhost ได้หรือไม่ถ้าฉันอนุญาตให้ localhost?
Kaushal

5

มีวิธีแก้ปัญหามากมายในช่วงหลายปีที่ผ่านมาและบางส่วนก็ใช้งานไม่ได้อีกต่อไปและบางส่วนไม่เคยทำมาก่อนดังนั้นการอัปเดตของฉันจะใช้งานได้ภายในสิ้นเดือนกรกฎาคม 2018

ติดตั้ง:

Google Maps JavaScript API ต้องทำงานอย่างถูกต้องกับ ...

  • หลายโดเมนที่เรียก API: example.comและexample.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/*

ในกรณีของฉันโซลูชันนี้ช่วยได้ แต่มีข้อ จำกัด API ใน API ที่ไม่ถูกต้อง ด้วยเหตุผลบางประการข้อความแสดงข้อผิดพลาดเดียวกันนี้ถูกส่งกลับ การเปลี่ยนข้อ จำกัด API จาก "Places API" เป็น "Maps Javascript API" ช่วยแก้ปัญหานี้ได้
LMG

4

ใส่คำอธิบายภาพที่นี่

ยอมรับคำขอจากผู้อ้างอิง HTTP เหล่านี้ (เว็บไซต์)

เขียนเส้นทางไดเรกทอรี localhost


3
ตามข้อความของ Google มันควรจะเป็นคุณสมบัติที่เป็นทางเลือกและถ้ามันว่างเปล่ามันควรจะใช้งานได้
ejectamenta

@ayanchakraborty - ฉันได้ลองชุดค่าผสมlocalhost / index.html (และเส้นทางต่างๆ) 10 ชุดรวมทั้งชุดไฟล์ต่างๆ: ///android_assets/www/index.html - แต่ไม่มีอะไรทำงาน RefererNotAllowedMapError ในคอนโซลแสดงให้ฉันเห็น: URL ของไซต์ของคุณที่จะได้รับอนุญาต: __file_url __ // android_asset / www / index.html # / tab / map //// `- แต่สิ่งนี้และรูปแบบต่างๆก็ใช้ไม่ได้เช่นกัน
rolinger

4

ฉันพบข้อผิดพลาดเดียวกัน:

ใส่คำอธิบายภาพที่นี่

ลิงค์นี้พูดถึงวิธีตั้งค่าข้อ จำกัด คีย์ API: https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions

ในกรณีของฉันปัญหาคือฉันใช้ข้อ จำกัด นี้:

ผู้อ้างอิง HTTP (เว็บไซต์) ยอมรับคำขอจากผู้อ้างอิง HTTP เหล่านี้ (เว็บไซต์) (ไม่บังคับ) ใช้ * สำหรับสัญลักษณ์แทน หากคุณเว้นว่างไว้คำขอจะได้รับการยอมรับจากผู้อ้างอิง อย่าลืมเพิ่มผู้อ้างอิงก่อนใช้คีย์นี้ในการผลิต https://*.example.net/*

ซึ่งหมายความว่า URL เช่น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/จะไม่ทำงาน ฉันเพียงแค่ต้องการเพิ่มผู้อ้างอิงคนที่สอง:

https://example.net/*

นั่นช่วยแก้ปัญหาให้ฉันได้


4

ฉันเพิ่มโดเมนเว็บไซต์ 2 โดเมนการตั้งค่า "*" ในโดเมนย่อยใช้งานไม่ได้ แต่โดเมนย่อยเฉพาะ "WWW" และโดเมนย่อยที่ใช้งานได้กับเว็บไซต์ของฉันโดยใช้คีย์ Google Map API เดียวกัน

อย่าใช้ "*" ในโดเมนย่อย

หวังว่ามันจะช่วยได้


3

คุณแสดงภาพหน้าจอของหน้าข้อมูลรับรอง API ของคุณ แต่คุณต้องคลิกที่ "คีย์เบราว์เซอร์ 1" และไปจากที่นั่นเพื่อเพิ่มผู้อ้างอิง


3

สำหรับหน้าที่ซ้อนกันลึกขึ้น

หากคุณมีโปรเจ็กต์ในโฟลเดอร์ตัวอย่างหรือเพจที่ซ้อนกัน

http://yourdomain.com/your-folder/your-page คุณสามารถป้อนข้อมูลนี้ได้

http://yourdomain.com/*/*

ส่วนที่สำคัญ/*/*/*ขึ้นอยู่กับว่าคุณต้องไปไกลแค่ไหน

ดูเหมือนว่า*จะไม่ตรงกัน/หรือเข้าทางลึกกว่า ..

สิ่งนี้จะช่วยให้คุณสามารถเข้าถึงโดเมนได้เต็มที่เว้นแต่คุณจะมีการซ้อนกันลึกกว่านั้น ..


3

การแก้ไขเหล่านี้ไม่ได้ผลสำหรับฉันจนกว่าฉันจะพบว่าRefererNotAllowedMapErrorอาจเกิดจากการไม่มีบัญชีสำหรับการเรียกเก็บเงินที่เชื่อมโยงกับโครงการ ดังนั้นอย่าลืมเปิดใช้งานการทดลองใช้ฟรีหรืออะไรก็ตาม


3
  1. เปิดใช้งานการเรียกเก็บเงินของคุณแล้ว

  2. เว็บไซต์ของคุณถูกเพิ่มไปยังGoogle Console

  3. เว็บไซต์ของคุณถูกเพิ่มไปยังผู้อ้างอิงในแอปของคุณ

  4. (ทำสัญลักษณ์แทนสำหรับทั้ง www และไม่มี www)

http://www.example.com/ * และhttp://example.com/ *

  1. แผนที่ Javascript นั้นเปิดใช้งานและคุณกำลังใช้ข้อมูลรับรองที่ถูกต้อง

  2. เว็บไซต์นั้นได้ถูกเพิ่มเข้าไปใน DNS ของคุณเพื่อเปิดใช้งาน Google Console ด้านบน

  3. ยิ้มได้เลย!


รายชื่อผู้อ้างอิงที่ได้รับอนุญาตของคุณสามารถพบได้ในเว็บคอนโซลของ Google Cloud Platform (console.cloud.google.com) ภายใต้APIs & Services > Credentials > (your key) > Application restrictions > HTTP Referrers
Master of Ducks

3

นี่เป็นอีกหนึ่งผลิตภัณฑ์ของ Google ที่มีการใช้งานที่แย่มาก

ปัญหาที่ฉันพบคือหากคุณ จำกัด คีย์ API ตามที่อยู่ IP มันจะไม่ทำงาน ... แต่ยังห่างไกลจาก Google ที่จะทำให้ประเด็นนี้ชัดเจน ... ยังไม่ถึงการแก้ไขปัญหาและการค้นคว้าฉันพบ:

คีย์ API ที่มีการ จำกัด ที่อยู่ IP สามารถใช้ได้เฉพาะกับบริการเว็บที่มีไว้สำหรับใช้จากฝั่งเซิร์ฟเวอร์ (เช่น Geocoding API และ Web Service API อื่น ๆ ) บริการเว็บเหล่านี้ส่วนใหญ่มีบริการที่เทียบเท่ากันภายใน Maps JavaScript API (ตัวอย่างเช่นดูบริการ Geocoding) ในการใช้บริการฝั่งไคลเอ็นต์ Maps JavaScript API คุณจะต้องสร้างคีย์ API แยกต่างหากซึ่งสามารถรักษาความปลอดภัยด้วยข้อ จำกัด ผู้อ้างอิง HTTP (ดูการ จำกัด คีย์ API)

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

FFS Google ... ข้อมูลสำคัญที่จะชี้แจงเกี่ยวกับการตั้งค่า ...



2

ในที่สุดฉันก็ทำงานได้โดยใช้เคล็ดลับนี้จาก 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

2

ฉันพยายามทำงานนี้เช่นกัน แต่นี่คือคำแนะนำบางประการ:

  • URL ที่กำหนดเป็นผู้อ้างอิงรวมhttpเช่นhttp://example.com/*
  • เปิดใช้ Google Maps JavaScript API แล้ว
  • มีการตั้งค่าการเรียกเก็บเงินในบัญชีนี้

เมื่อแก้ไขทั้งหมดข้างต้นแล้วแผนที่จะแสดงตามที่คาดไว้


1

ฉันพยายามใช้Places API (เติมข้อความอัตโนมัติ)และต้องเปิดใช้งานMaps Javascript APIจากใน Google Cloud Console ก่อนที่ Places API จะทำงาน


0

ตรวจสอบใบประกาศของคุณในไซต์ ในการโหลด Google Maps JavaScript API ให้ใช้แท็กสคริปต์เช่นนี้

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

ฉันใช้คำประกาศนี้บนไซต์ Wordpress ของฉันในไฟล์ function.php

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

ฉันตั้งค่าคีย์ API ในรูปแบบนี้แล้วและใช้งานได้ดี

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

คำประกาศนี้ใช้ไม่ได้

*.my-domain-name.com/*

0

การลบข้อ จำกัด (ถึงไม่มี) ได้ผลสำหรับฉัน


6
การลบข้อ จำกัด ถือเป็นการปฏิบัติที่ไม่ดีและทำให้ API ของคุณมีช่องโหว่
mtness

2
@mtness เห็นได้ชัด แต่ผู้โพสต์ได้ลองใช้ครั้งแรกแล้วไม่ประสบความสำเร็จ น่าเสียดายที่เอกสารของ Google ไม่มีประโยชน์อีกต่อไป ทุกคำตอบที่นี่นำเสนอเคล็ดลับใหม่ ๆ เกือบจะเหมือนเกมทายใจ ...
James Wong - Reinstate Monica


0

คอนโซล Javascript ของ Chrome แนะนำให้ฉันประกาศที่อยู่หน้าเว็บทั้งหมดในรายการผู้อ้างอิง HTTP ของฉันในกรณีนี้http://mywebsite.com/map.htmแม้ว่าที่อยู่ที่แน่นอนคือhttp://www.mywebsite.com/map.htm - ฉันมีรูปแบบสัญลักษณ์แทนตามที่คนอื่นแนะนำอยู่แล้ว แต่นี่เป็นวิธีเดียวที่จะใช้ได้กับฉัน


0

สิ่งนี้ได้ผลสำหรับฉัน มีข้อ จำกัด 2 ประเภทหลัก ๆ ภายใต้การตั้งค่าคีย์ API:

  • Application restrictions
  • API restrictions

ข้อ จำกัด การใช้งาน:

ที่ด้านล่างในส่วนผู้อ้างอิงให้เพิ่ม URL เว็บไซต์ของคุณ " http://www.grupocamaleon.com/boceto/aerial-simple.html " มีตัวอย่างกฎอยู่ทางด้านขวามือของส่วนตามข้อกำหนดต่างๆ

ข้อ จำกัด ของแอปพลิเคชัน

ข้อ จำกัด ของ API:

ภายใต้ข้อ จำกัด ของ API คุณต้องเลือก'Maps Javascript API'อย่างชัดเจนจากรายการแบบเลื่อนลงเนื่องจากคีย์เฉพาะของเราจะใช้สำหรับการเรียก Google maps API เท่านั้น (อาจ) และบันทึกไว้ดังที่คุณเห็นในภาพด้านล่าง ฉันหวังว่านี่จะเหมาะกับคุณ ..... ทำงานให้ฉัน

ใส่คำอธิบายภาพที่นี่

ตรวจสอบสคริปต์ของคุณ:

นอกจากนี้ปัญหาอาจเกิดขึ้นเนื่องจากการป้อนคีย์ที่ไม่เหมาะสมภายในแท็กสคริปต์ ควรเป็นดังนี้:

  <script async defer src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&callback=initMap"
  type="text/javascript"></script>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.