คีย์ Googlemaps API สำหรับ Localhost


94

ฉันจะรับคีย์ googlemaps api เพื่อทำงานบน localhost ได้อย่างไร

ฉันได้สร้างคีย์ API และภายใต้ผู้อ้างอิงฉันเพิ่มสิ่งต่อไปนี้:

Accept requests from these HTTP referrers (websites) (Optional)

Use asterisks for wildcards. If you leave this blank, requests will be 
accepted from any referrer. Be sure to add referrers before using this key 
in production. 

localhost

สิ่งนี้ใช้ไม่ได้และถ้าฉันไม่รวมคีย์ api มันก็ใช้ไม่ได้เช่นกัน?


คำตอบ:


137
  1. ไปที่ที่อยู่นี้: https://console.developers.google.com/apis
  2. สร้างคีย์ API สำหรับโครงการของคุณ
  3. คลิกที่ "ห้องสมุด"
  4. คลิกที่ API ใดก็ได้ที่คุณต้องการ
  5. คลิกที่ "เปิดใช้งาน" (ขวาบน)
  6. คลิกที่ "ข้อมูลรับรอง"> "แก้ไขคีย์"
  7. ภายใต้ "การ จำกัด คีย์" เลือก "ผู้อ้างอิง HTTP (เว็บไซต์)"
  8. พิมพ์ที่อยู่เว็บไซต์ของคุณ (หรือ "localhost", "127.0.0.1", "localhost: port" ฯลฯ สำหรับการทดสอบภายใน) ในช่องข้อความแล้วกดENTERเพื่อเพิ่มลงในรายการ
  9. ใช้รหัสของคุณในโครงการของคุณ

9
นี่คือสิ่งที่ฉันทำเช่นกัน แต่ฉันสงสัยว่านั่นหมายความว่าทุกคนที่ทำงานในพื้นที่ (localhost / 127.0.0.1) อาจใช้คีย์ API ของฉัน (และอาจสรุปค่าใช้จ่ายสำหรับฉันหลังจากการกำหนดราคาใหม่ในวันที่ 2018-06-11 เกิดขึ้น ?)
tmanolatos

35
@tmanolatos ใช่นั่นคือความหมาย การให้สิทธิ์ localhost ของคีย์การผลิตไม่ใช่แนวทางปฏิบัติที่ดีเนื่องจากทุกคนสามารถใช้คีย์ของคุณในขณะที่ทำงานในเครื่อง แต่คุณควรรักษาสองคีย์ หนึ่งสำหรับการผลิตซึ่งทุกคนสามารถมองเห็นได้ดังนั้นจึงควรได้รับอนุญาตในโดเมนของคุณเท่านั้น หนึ่งสำหรับการพัฒนาซึ่งควรถือเป็นข้อมูลประจำตัว (อย่าแชร์) และอนุญาตให้เข้าถึงจาก localhost
the_cheff

2
@tmanolatos ใช่ แต่คุณต้องสร้างคีย์สองอันอันหนึ่งเพื่อทดสอบแอพและอีกอันสำหรับแอพหลัก
Sajad Mirzaei

ฉันได้รับคำตอบหลังจากทำตามขั้นตอนข้างต้น: {"error_message": "ไม่สามารถใช้คีย์ API ที่มีข้อ จำกัด ของผู้อ้างอิงกับ API นี้", "results": [], "status": "REQUEST_DENIED"} นี่คือ URL โดยที่ DEV_KEY ถูกแทนที่ด้วยคีย์ api ของฉัน: maps.googleapis.com/maps/api/geocode/…
rmutalik

ส่งคืน JSON ที่ถูกต้องเมื่อฉันใช้คีย์ API ของ PROD_KEY
rmutalik

11

ติดตามทางนี้ได้เลยครับ อย่างน้อยก็ใช้ได้สำหรับฉัน:

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

  1. เลือกตัวเลือกที่มีที่อยู่ IP (ตัวเลือกหมายเลข 3)

  2. ใส่ที่อยู่ IP ของคุณจากผู้ให้บริการของคุณ หากคุณไม่ทำเช่นนั้นให้ค้นหาที่อยู่ IP ของคุณโดยใช้ลิงก์นี้: https://www.google.co.th/search?q=my+ip

  3. บันทึกไว้

  4. เปลี่ยนลิงค์แผนที่ Google ของคุณตามระหว่างแท็ก scrip:

    https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzxxxxxxxx "

  5. รอประมาณ 5 นาทีขึ้นไปเพื่อให้คีย์ API ของคุณเผยแพร่

ตอนนี้แผนที่ Google ของคุณควรใช้งานได้แล้ว


9

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

ฉันมีปัญหาเดียวกันและความพยายามทั้งหมดในการรับข้อ จำกัด ที่ทำงานบนสภาพแวดล้อม localhost ของฉันไม่ประสบความสำเร็จจนกว่าฉันจะสร้าง apikey แยกต่างหากสำหรับการพัฒนาโดยเฉพาะจากนั้นจึงลบข้อ จำกัด ออก อย่างไรก็ตามฉันไม่ได้ใช้คีย์นั้นในสภาพแวดล้อมการใช้งานจริงและเมื่อดำเนินการพัฒนาเสร็จแล้วฉันจะลบคีย์ API ทันที

ฉันรู้ว่าโพสต์นี้ช้าไป แต่สำหรับคนที่มีแนวโน้มว่าจะเผชิญกับปัญหานี้ในอนาคตนี่คือเส้นทางที่ดีที่สุดที่จะไป


5

เดาว่าฉันไปงานปาร์ตี้ช้าไปหน่อยและแม้ว่าฉันจะยอมรับว่าการสร้างคีย์แยกสำหรับการพัฒนา (localhost) และผลิตภัณฑ์เป็นไปได้ที่จะทำทั้งสองอย่างในคีย์เดียวเท่านั้น

เมื่อคุณใช้ข้อ จำกัด ของแอปพลิเคชัน -> ผู้อ้างอิง http -> การปรับเปลี่ยนเว็บไซต์คุณสามารถป้อน URL ตัวแทน

อย่างไรก็ตามการใช้สัญลักษณ์แทนเช่น. localhost / หรือ .localhost: {port} (เมื่อมี .yourwebsite.com / * ) ดูเหมือนจะไม่ทำงาน

เพียงแค่ใส่ * ตัวเดียวก็ใช้งานได้ แต่โดยพื้นฐานแล้วจะให้คีย์ไม่ จำกัด ซึ่งไม่ใช่สิ่งที่คุณต้องการ

เมื่อคุณรวมเส้นทางแบบเต็มโดยไม่ใช้สัญลักษณ์แทน * มันก็ใช้ได้เช่นกันดังนั้นในกรณีของฉันให้ใส่:

http: // localhost {port} /
http: // localhost : {port} / something-else / ที่นี่

ทำให้แผนที่ Google ทำงานได้ทั้งแบบโลคัลบน www.yourwebsite.com โดยใช้คีย์ API เดียวกัน

อย่างไรก็ตามเมื่อมี 2 คีย์แยกกันก็เป็นตัวเลือกที่ฉันขอแนะนำให้ทำเช่นนั้น


1

คุณสามารถทำตามบทช่วยสอนนี้เกี่ยวกับวิธีใช้ Google Maps สำหรับการทดสอบบน localhost

ตรวจสอบเธรด SO ที่เกี่ยวข้องเหล่านี้:

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


2
ลิงค์เสียใช้งานไม่ได้
Rafael Herscovici


@AEGrey - ไม่ใช่สำหรับฉันสำหรับผู้ใช้ในอนาคต
Rafael Herscovici

1

คุณต้องตรวจสอบข้อผิดพลาดเฉพาะภายในคอนโซลจาวาสคริปต์ (เช่นCtrl+ Shift+ Kใน Firefox สำหรับ Windows)

จากข้อมูลของSteven Gliebe (2016)มีสี่กรณีทั่วไปสำหรับปัญหานี้ ถ้าผมสรุปได้ดังนี้:

  1. MissingKeyMapError >> รับคีย์ Google Maps API (แต่ให้พิจารณาทางเลือกหมายเลข 2 ด้วย)
  2. RefererNotAllowedMapError >> ลงทะเบียนของคุณlocalhost: พอร์ตของคุณในGoogle แดชบอร์ดนักพัฒนา
  3. ApiNotActivatedMapError >> การเปิดใช้งาน Google Maps API ในหน้าไลบรารี Google API
  4. InvalidKeyMapError >> เพิ่มคีย์ของคุณลงในสคริปต์ / รหัสของคุณอย่างถูกต้อง

หลังจากทำการแก้ไขโค้ดแล้วโปรดล้างแคชของเบราว์เซอร์ตามความจำเป็น

ในกรณีที่มีข้อผิดพลาดอื่น ๆ คุณสามารถตรวจสอบหน้าเอกสารเกี่ยวกับรหัสข้อผิดพลาดของ Google Maps API


0

โดยระบุว่า "ยอมรับคำขอจากผู้อ้างอิง HTTP เหล่านี้ (เว็บไซต์) (ไม่บังคับ)" คุณไม่จำเป็นต้องมีผู้อ้างอิงใด ๆ อยู่ในรายการ ดังนั้นคลิก X ข้าง localhost ในหน้านี้ แต่ใช้คีย์ของคุณต่อไป

จากนั้นควรใช้งานได้หลังจากนั้นไม่กี่นาที

การเปลี่ยนแปลงที่ทำบางครั้งอาจใช้เวลาสักครู่จึงจะมีผลดังนั้นโปรดรอสักครู่ก่อนที่จะทดสอบอีกครั้ง


0

การพิมพ์ 'IP ของฉัน' ในการค้นหาของ Google ฉันได้รับที่อยู่ IP สาธารณะของฉันและวางในที่อยู่ IP (ตัวเลือกที่สาม) มันใช้ได้กับฉัน


0

การพิมพ์ 'IP ของฉัน' ในการค้นหาของ Google ฉันได้รับที่อยู่ IP สาธารณะของฉันและวางในที่อยู่ IP (ตัวเลือกที่สาม) มันใช้ได้กับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.