คำแนะนำด้านความปลอดภัยของ Google Maps Platform

แอปและโปรเจ็กต์ที่ใช้ API และ SDK ของ Google Maps Platform ต้องใช้คีย์ API หรือ OAuth 2.0 (หากรองรับ) เพื่อตรวจสอบสิทธิ์

แนวทางปฏิบัติแนะนำเหล่านี้จะแสดงวิธีรักษาความปลอดภัยในการเข้าถึง Maps Platform

หากต้องการใช้ OAuth 2.0 เพื่อให้สิทธิ์การรับส่งข้อมูลแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ ให้มองหาหัวข้อ OAuth ในเอกสารประกอบของ API ดูรายละเอียดเพิ่มเติมได้ที่ใช้ OAuth สำหรับแอปฝั่งเซิร์ฟเวอร์

นอกเหนือจากการใช้ข้อจำกัดของแอปพลิเคชันและคีย์ API แล้ว ให้ปฏิบัติตาม แนวทางปฏิบัติด้านความปลอดภัยที่ใช้กับผลิตภัณฑ์ Google Maps Platform ที่เฉพาะเจาะจง เช่น ดู Maps JavaScript API ด้านล่างในข้อจำกัดของแอปพลิเคชันและ API ที่แนะนำ

หากมีการใช้คีย์ API อยู่แล้ว โปรดดูคำแนะนำด้านล่างในส่วนหากคุณ จำกัดคีย์ API ที่ใช้งานอยู่

ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลที่ Maps Static API และ Street View Static API รองรับได้ที่คู่มือลายเซ็นดิจิทัล

แนวทางปฏิบัติแนะนำ

เพื่อเพิ่มความปลอดภัยและหลีกเลี่ยงการเรียกเก็บเงินสำหรับการใช้งานที่ไม่ได้รับอนุญาต โปรดปฏิบัติตาม แนวทางปฏิบัติแนะนำด้านความปลอดภัยของ API เหล่านี้สำหรับ API, SDK หรือ บริการทั้งหมดของ Google Maps Platform

จำกัดคีย์ API

ใช้คีย์ API แยกต่างหากสำหรับแต่ละแอป

ลบคีย์ API ที่ไม่ได้ใช้

ตรวจสอบการใช้งานคีย์ API

โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API

แยกการใช้งานฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ออกเป็นโปรเจ็กต์แยกกัน

ปิดใช้บริการที่ไม่ได้ใช้

คำแนะนำเพิ่มเติมสำหรับแอปฝั่งไคลเอ็นต์

ใช้ SDK ฝั่งไคลเอ็นต์

รักษาความปลอดภัยให้กับการเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์

คำแนะนำเพิ่มเติมสำหรับเว็บไซต์หรือแอปฝั่งไคลเอ็นต์ที่ใช้ Static Web API

ปกป้องการใช้งาน Static Web API

คำแนะนำเพิ่มเติมสำหรับแอปฝั่งเซิร์ฟเวอร์ที่ใช้เว็บเซอร์วิส

ปกป้องคีย์ API ของเว็บเซอร์วิส

ใช้ OAuth สำหรับแอปฝั่งเซิร์ฟเวอร์

หากคุณจำกัดหรือหมุนเวียนคีย์ API ที่ใช้งานอยู่

  • ก่อนที่จะเปลี่ยนคีย์ API โปรดตรวจสอบการใช้งานคีย์ API ขั้นตอนนี้มีความสำคัญอย่างยิ่งหากคุณกำลังเพิ่มข้อจำกัดสำหรับคีย์ที่ใช้งานอยู่ในแอปพลิเคชันเวอร์ชันที่ใช้งานจริงอยู่แล้ว

  • หลังจากเปลี่ยนคีย์แล้ว ให้อัปเดตแอปทั้งหมดด้วยคีย์ API ใหม่ตาม ที่จำเป็น

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

    ดูวิธีการเพิ่มเติมได้ที่หัวข้อย้ายข้อมูลไปยังคีย์ API หลายรายการ

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

  • หากคีย์ API ของคุณถูกบุกรุก คุณจะต้องดำเนินการอย่างรวดเร็วเพื่อรักษาความปลอดภัยของคีย์ API และหยุดการละเมิด ในแอป Android และ iOS ระบบจะไม่ แทนที่คีย์จนกว่าลูกค้าจะอัปเดตแอป การอัปเดตหรือแทนที่คีย์ในหน้าเว็บหรือในแอปฝั่งเซิร์ฟเวอร์นั้นตรงไปตรงมามากกว่า แต่ก็ยังอาจต้องมีการวางแผนอย่างรอบคอบและการทำงานที่รวดเร็ว

    ดูข้อมูลเพิ่มเติมได้ที่ จัดการการใช้คีย์ API โดยไม่ได้รับอนุญาต

ข้อมูลเพิ่มเติม

การจำกัดแอปพลิเคชันและ API ที่แนะนำ

จำกัดคีย์ API

แนวทางปฏิบัติแนะนำคือจำกัดคีย์ API ด้วยข้อจำกัดของแอปพลิเคชัน 1 ประเภทและข้อจำกัด API อย่างน้อย 1 รายการเสมอ ดูข้อจำกัดที่แนะนำตาม API, SDK หรือบริการ JavaScript ได้ที่ข้อจำกัดของแอปพลิเคชันและ API ที่แนะนำด้านล่าง

  • ข้อจำกัดของแอปพลิเคชัน คุณสามารถจำกัดการใช้คีย์ API ให้กับแพลตฟอร์มที่เฉพาะเจาะจงได้ เช่น แอปพลิเคชัน Android หรือ iOS หรือเว็บไซต์ที่เฉพาะเจาะจงสำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ หรือที่อยู่ IP หรือเครือข่ายย่อย CIDR ที่เฉพาะเจาะจงสำหรับแอปฝั่งเซิร์ฟเวอร์ ที่ออกการเรียก REST API ของบริการเว็บ

    คุณจำกัดคีย์ได้โดยการเพิ่มข้อจำกัดของแอปพลิเคชันอย่างน้อย 1 รายการของ ประเภทที่ต้องการให้สิทธิ์ หลังจากนั้นระบบจะอนุญาตเฉพาะคำขอที่มาจาก แหล่งที่มาเหล่านี้

  • การจำกัด API คุณสามารถจำกัด API, SDK หรือบริการของ Google Maps Platform ที่ใช้คีย์ API ได้ การจำกัด API จะอนุญาตเฉพาะคำขอไปยัง API และ SDK ที่คุณระบุเท่านั้น คุณระบุข้อจำกัด API ได้มากเท่าที่ต้องการสำหรับคีย์ API ใดก็ตาม รายการ API ที่ใช้ได้จะรวม API ทั้งหมดที่เปิดใช้ในโปรเจ็กต์

ตั้งค่าข้อจำกัดของแอปพลิเคชันสำหรับคีย์ API

  1. เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ในคอนโซล Google Cloud

  2. เลือกคีย์ API ที่ต้องการจำกัด

  3. ในหน้าแก้ไขคีย์ API ภายในข้อจํากัดของคีย์ ให้เลือก ตั้งค่าข้อจํากัดของแอปพลิเคชัน

    แก้ไขหน้าคีย์ API

  4. เลือกประเภทข้อจำกัดอย่างใดอย่างหนึ่งและระบุข้อมูลที่ขอตามรายการข้อจำกัด

    ประเภทข้อจำกัด คำอธิบาย
    เว็บไซต์ ระบุเว็บไซต์อ้างอิงอย่างน้อย 1 เว็บไซต์
    • รูปแบบ URI ของผู้แนะนำที่รองรับโดยทั่วไปคือ https และ http ระบบไม่รับประกันว่ารูปแบบอื่นๆ จะทำงานได้อย่างถูกต้อง เนื่องจากเว็บเบราว์เซอร์สมัยใหม่จะไม่ส่งส่วนหัว `Referer` ในคำขอขาออกด้วยเหตุผลด้านความเป็นส่วนตัว
    • ระบุสตริงผู้แนะนำทั้งหมดเสมอ รวมถึงรูปแบบโปรโตคอล ชื่อโฮสต์ และพอร์ตที่ไม่บังคับ (เช่น https://google.com)
    • คุณสามารถใช้อักขระไวลด์การ์ดเพื่อให้สิทธิ์โดเมนย่อยทั้งหมดได้ เช่น https://*.google.com ยอมรับเว็บไซต์ทั้งหมดที่ลงท้ายด้วย .google.com
    • โปรดระมัดระวังเมื่อให้สิทธิ์ผู้แนะนำแบบเต็มเส้นทาง เช่น https://google.com/some/path เนื่องจากเว็บเบราว์เซอร์ส่วนใหญ่ จะตัดเส้นทางออกจากคำขอแบบข้ามต้นทาง ด้วยเหตุผลด้านความเป็นส่วนตัว
    ที่อยู่ IP ระบุที่อยู่ IPv4 หรือ IPv6 อย่างน้อย 1 รายการ หรือซับเน็ตโดยใช้รูปแบบ CIDR ที่อยู่ IP ต้องตรงกับที่อยู่ต้นทางที่เซิร์ฟเวอร์ Google Maps Platform สังเกต หากคุณใช้การเปลี่ยนค่าที่อยู่เครือข่าย (NAT) โดยทั่วไปที่อยู่นี้จะตรงกับที่อยู่ IP สาธารณะของเครื่อง
    แอป Android

    เพิ่มชื่อแพ็กเกจ Android (จากไฟล์ AndroidManifest.xml) และลายนิ้วมือของใบรับรองการลงนาม SHA-1 ของแอปพลิเคชัน Android แต่ละรายการที่คุณต้องการให้สิทธิ์

    1. เลือกแอป Android
    2. คลิก + เพิ่ม
    3. ป้อนชื่อแพ็กเกจและลายนิ้วมือของใบรับรอง SHA-1 เช่น
      com.example.android.mapexample
      BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    4. คลิกบันทึก

    ใบรับรองมี 2 ประเภท ได้แก่

    • ใบรับรองสำหรับการแก้ไขข้อบกพร่อง: ใช้ใบรับรองประเภทนี้กับแอปที่คุณกำลังทดสอบและโค้ดอื่นๆ ที่ไม่ใช่โค้ดเวอร์ชันที่ใช้งานจริงเท่านั้น อย่าพยายามเผยแพร่แอปที่ลงนามด้วยใบรับรองสำหรับการแก้ไขข้อบกพร่อง เครื่องมือ Android SDK จะสร้างใบรับรองนี้โดยอัตโนมัติเมื่อคุณเรียกใช้บิลด์การแก้ไขข้อบกพร่อง
    • ใบรับรองสำหรับการเผยแพร่: ใช้ใบรับรองนี้เมื่อคุณพร้อมที่จะเผยแพร่แอปไปยัง App Store เครื่องมือ Android SDK จะสร้างใบรับรองนี้เมื่อคุณเรียกใช้บิลด์ที่เผยแพร่

    ดูข้อมูลเพิ่มเติมเกี่ยวกับการลงนามในแอปพลิเคชัน Android และใบรับรองได้ที่คู่มือการลงนามในแอป

    หากใช้ Play App Signing เพื่อดึงข้อมูลลายนิ้วมือของใบรับรองการรับรอง โปรดดูหัวข้อการทำงานร่วมกับผู้ให้บริการ API หากคุณจัดการคีย์การลงนามด้วยตนเอง โปรดดู การลงนามในแอปพลิเคชันด้วยตนเอง หรือดูวิธีการสำหรับสภาพแวดล้อมของบิลด์

    แอป iOS

    เพิ่มรหัสชุดซอฟต์แวร์ของแอปพลิเคชัน iOS แต่ละรายการที่คุณต้องการ ให้สิทธิ์

    1. เลือกแอป iOS
    2. คลิก + เพิ่ม
    3. เพิ่มรหัสชุดเพื่อยอมรับคำขอจากแอป iOS ที่มีรหัสดังกล่าว
    4. คลิกบันทึก

    ดูคําแนะนําสําหรับการจํากัดแอปพลิเคชันได้ที่การจํากัดแอปพลิเคชันที่แนะนํา

  5. เลือกบันทึก

ตั้งค่าข้อจำกัดของ API สำหรับคีย์ API

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ในคอนโซล Google Cloud

  2. เลือกคีย์ API ที่ต้องการจำกัด

  3. ในหน้าแก้ไขคีย์ API ภายในข้อจํากัดของ API ให้ทําดังนี้

    • เลือกจำกัดคีย์

    • เปิดเลือก API แล้วเลือก API หรือ SDK ที่คุณต้องการให้แอปพลิเคชันเข้าถึงโดยใช้คีย์ API

    หาก API หรือ SDK ไม่แสดง คุณจะต้องเปิดใช้ โปรดดูรายละเอียดที่หัวข้อวิธีเปิดใช้ API หรือ SDK อย่างน้อย 1 รายการ

    จำกัด API ในหน้าแก้ไขคีย์ API

  4. เลือกบันทึก

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

ดูข้อจำกัด API ที่แนะนำได้ที่ข้อจำกัด API ที่แนะนำ

ตรวจสอบการใช้งานคีย์ API

หากคุณจำกัดคีย์ API หลังจากที่สร้างแล้ว หรือต้องการดูว่า API ใดที่คีย์ใช้เพื่อจำกัด API เหล่านั้น คุณจะต้องตรวจสอบการใช้งานคีย์ API ขั้นตอนเหล่านี้จะแสดงให้เห็นว่ามีการใช้คีย์ API ในบริการและเมธอด API ใด หากคุณเห็นการใช้งานนอกเหนือจากบริการของ Google Maps Platform ให้ตรวจสอบเพื่อพิจารณาว่าคุณจำเป็นต้องเพิ่มข้อจำกัดเพื่อหลีกเลี่ยงการใช้งานที่ไม่พึงประสงค์หรือไม่ คุณสามารถใช้เครื่องมือสำรวจเมตริกใน Cloud Console ของ Google Maps Platform เพื่อช่วยระบุข้อจำกัดของ API และแอปพลิเคชันที่จะใช้กับคีย์ API ได้โดยทำดังนี้

ระบุ API ที่ใช้คีย์ API ของคุณ

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

  • ดูวิธีใช้คีย์ API
  • ตรวจหาการใช้งานที่ไม่คาดคิด
  • ช่วยยืนยันว่าคีย์ที่ไม่ได้ใช้ปลอดภัยที่จะลบหรือไม่ ดูข้อมูลเกี่ยวกับการลบคีย์ API ได้ที่หัวข้อลบคีย์ API ที่ไม่ได้ใช้

เมื่อใช้ข้อจํากัดของ API ให้ใช้รายงานเหล่านี้เพื่อสร้างรายการ API ที่จะให้สิทธิ์ หรือเพื่อตรวจสอบคําแนะนําเกี่ยวกับข้อจํากัดของคีย์ API ที่สร้างขึ้นโดยอัตโนมัติ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อจำกัดที่แนะนำได้ที่ใช้ข้อจำกัดที่แนะนำ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ เครื่องมือสํารวจเมตริกได้ที่สร้างแผนภูมิด้วยเครื่องมือสํารวจเมตริก

  1. ไปที่ Metrics Explorer ของคอนโซล Google Cloud

  2. ลงชื่อเข้าใช้แล้วเลือกโปรเจ็กต์สำหรับคีย์ API ที่ต้องการตรวจสอบ

  3. ไปที่หน้าเมตริก Explorer สำหรับ API ประเภทของคุณ

  4. ตรวจสอบคีย์ API แต่ละรายการโดยทำดังนี้

    1. เลือกเพิ่มตัวกรอง

    2. เลือกป้ายกำกับ credential_id

    3. เลือกค่าที่สอดคล้องกับคีย์ที่ต้องการตรวจสอบ

    4. จดบันทึก API ที่ใช้คีย์ API นี้ และยืนยันว่าการใช้งานเป็นไปตามที่คาดไว้

    5. เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก ที่ท้ายบรรทัดตัวกรองที่ใช้งานอยู่ เพื่อลบตัวกรองเพิ่มเติม

  5. ทำซ้ำสำหรับคีย์ที่เหลือ

  6. จำกัดคีย์ API ให้ใช้ได้เฉพาะกับ API ที่กำลังใช้งานอยู่

  7. หากพบการใช้งานที่ไม่ได้รับอนุญาต โปรดดูหัวข้อจัดการการใช้งานคีย์ API ที่ไม่ได้รับอนุญาต

เลือกประเภทการจํากัดแอปพลิเคชันที่ถูกต้องโดยใช้เครื่องมือสํารวจเมตริก

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

หากคีย์ API มีข้อจำกัดของคีย์ API ที่แนะนำ ให้ใช้ข้อจำกัดเหล่านั้น ดูข้อมูลเพิ่มเติมได้ที่ใช้ข้อจำกัดของคีย์ API ที่แนะนำ

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

  1. ไปที่เครื่องมือสำรวจเมตริกของคอนโซล Google Cloud

  2. ลงชื่อเข้าใช้แล้วเลือกโปรเจ็กต์สำหรับ API ที่ต้องการตรวจสอบ

  3. ไปที่หน้าเครื่องมือสำรวจเมตริกนี้: เครื่องมือสำรวจเมตริก

  4. ตรวจสอบคีย์ API แต่ละรายการโดยทำดังนี้

    1. เลือกเพิ่มตัวกรอง

    2. เลือกป้ายกำกับ credential_id

    3. เลือกค่าที่สอดคล้องกับคีย์ที่ต้องการตรวจสอบ

    4. เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก ที่ท้ายบรรทัดตัวกรองที่ใช้งานอยู่ เพื่อลบตัวกรองเพิ่มเติม

  5. ทำซ้ำสำหรับคีย์ที่เหลือ

  6. เมื่อทราบประเภทแพลตฟอร์มสำหรับคีย์ API แล้ว ให้ใช้ข้อจำกัดของแอปพลิเคชันสำหรับ platform_type:

    PLATFORM_TYPE_JS : ใช้การจำกัดเว็บไซต์กับคีย์

    PLATFORM_TYPE_ANDROID : ใช้ข้อจำกัดของแอปพลิเคชัน Android กับคีย์

    PLATFORM_TYPE_IOS : ใช้ข้อจํากัดของแอปพลิเคชัน iOS กับคีย์

    PLATFORM_TYPE_WEBSERVICE : คุณอาจต้องอาศัยข้อจำกัดของที่อยู่ IP ในคีย์เพื่อจำกัดคีย์อย่างเหมาะสม

    ดูคำแนะนำสำหรับ Maps Static API และ Street View Static API ได้ที่ปกป้องการใช้งาน Static Web API

    ดูคำแนะนำเกี่ยวกับ Maps Embed API ได้ที่เว็บไซต์ที่มี Maps Embed API

    คีย์ API ของฉันใช้แพลตฟอร์มหลายประเภท คุณไม่สามารถรักษาความปลอดภัยของการเข้าชมได้อย่างเหมาะสมด้วยคีย์ API เพียงคีย์เดียว คุณต้อง ย้ายข้อมูลไปยังคีย์ API หลายรายการ ดูข้อมูลเพิ่มเติมได้ที่ ย้ายข้อมูลไปยังคีย์ API หลายรายการ

ใช้คีย์ API แยกกันสำหรับแต่ละแอป

แนวทางปฏิบัตินี้จะจำกัดขอบเขตของคีย์แต่ละรายการ หากคีย์ API รายการหนึ่งถูกบุกรุก คุณสามารถลบหรือหมุนเวียนคีย์ที่ได้รับผลกระทบได้โดยไม่ต้องอัปเดตคีย์ API อื่นๆ คุณสร้างคีย์ API ได้สูงสุด 300 คีย์ต่อโปรเจ็กต์ ดูข้อมูลเพิ่มเติมได้ที่ขีดจำกัดของคีย์ API

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

ใช้ข้อจำกัดของคีย์ API ที่แนะนำ

สำหรับเจ้าของโปรเจ็กต์ ผู้แก้ไข และผู้ดูแลระบบคีย์ API บางราย คอนโซล Google Cloud จะแนะนำข้อจำกัดคีย์ API ที่เฉพาะเจาะจงสำหรับคีย์ API ที่ไม่มีข้อจำกัดตามการใช้งานและกิจกรรมใน Google Maps Platform

หากมี คำแนะนำจะปรากฏเป็นตัวเลือกที่กรอกไว้ล่วงหน้าในหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform

API และ SDK ของ Google Maps Platform ที่รองรับคำแนะนำอัตโนมัติ

  • Maps JavaScript API ซึ่งรวมถึง บริการเส้นทาง (เดิม) บริการเมทริกซ์ระยะทาง (เดิม) บริการระดับความสูง บริการการเข้ารหัสพิกัดภูมิศาสตร์ คลาส Place วิดเจ็ตการเติมข้อมูลสถานที่อัตโนมัติ (ใหม่) API ข้อมูลการเติมข้อมูลสถานที่อัตโนมัติ Places Library บริการ Places วิดเจ็ตการเติมข้อมูลสถานที่อัตโนมัติ และ Places UI Kit

  • Maps Static API และ Street View Static API

  • Maps Embed API

  • Maps SDK สำหรับ Android, Navigation SDK สำหรับ Android, Places SDK สำหรับ Android และ Places UI Kit ใน Android

  • Maps SDK สำหรับ iOS, Navigation SDK สำหรับ iOS, Places SDK สำหรับ iOS, Places Swift SDK สำหรับ iOS และ Places UI Kit บน iOS

สาเหตุที่คุณอาจไม่เห็นคำแนะนำหรือเห็นคำแนะนำที่ไม่สมบูรณ์

สาเหตุที่ไม่มีวิดีโอแนะนำ

  • คุณกำลังใช้คีย์ API ในบริการอื่นนอกเหนือจาก Google Maps Platform หรือบริการ Maps Platform ที่ยังไม่รองรับคำแนะนำอัตโนมัติ

    หากเห็นการใช้งานในบริการอื่นๆ อย่าใช้คำแนะนำโดยที่ยังไม่ได้ทำสิ่งต่อไปนี้ก่อน

    1. ยืนยันว่าการใช้งาน API ที่คุณเห็นใน Metrics Explorer ของคอนโซล Google Cloud นั้นถูกต้องตามกฎหมาย

    2. เพิ่มบริการที่ขาดหายไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง

    3. เพิ่มการจำกัดแอปพลิเคชันที่ขาดหายไปสำหรับบริการที่เพิ่มลงในรายการ API ด้วยตนเอง หากแอปอื่นๆ ที่เพิ่มเข้ามาต้องใช้ข้อจำกัดของแอปพลิเคชันประเภทอื่น โปรดดูหัวข้อย้ายข้อมูลไปยังคีย์ API หลายรายการ

  • คีย์ API ของคุณไม่ได้ใช้ใน SDK หรือ API ฝั่งไคลเอ็นต์

  • คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งานในช่วง 60 วันที่ผ่านมา

  • คุณเพิ่งสร้างคีย์ใหม่เมื่อเร็วๆ นี้ หรือเพิ่งติดตั้งใช้งานคีย์ที่มีอยู่ในแอปใหม่ หากเป็นกรณีนี้ ให้รออีก 2-3 วันเพื่อให้คำแนะนำอัปเดต

  • คุณใช้คีย์ API ในแอปพลิเคชันหลายรายการที่ต้องมีการจำกัดแอปพลิเคชันประเภทที่ขัดแย้งกัน หรือคุณใช้คีย์ API เดียวกันในแอปหรือเว็บไซต์ที่แตกต่างกันมากเกินไป ไม่ว่าในกรณีใด แนวทางปฏิบัติแนะนำคือคุณควรย้ายข้อมูลไปยังคีย์หลายรายการ ดูรายละเอียดเพิ่มเติมได้ที่ย้ายข้อมูลไปยังคีย์ API หลายรายการ

สาเหตุที่เห็นคำแนะนำที่ไม่สมบูรณ์

  • คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งานในช่วง 60 วันที่ผ่านมา

  • คุณเพิ่งเริ่มใช้คีย์ที่มีอยู่กับ API หรือบริการใหม่เมื่อเร็วๆ นี้ และไปป์ไลน์คำแนะนำการจำกัดคีย์ API อัตโนมัติยังไม่ได้ประมวลผลเมตริกการใช้งานที่อัปเดต การเผยแพร่เมตริกการใช้งานอาจใช้เวลา 2-3 วัน

    หากเห็นการใช้งานในบริการอื่นๆ อย่าใช้คำแนะนำโดยไม่ทำสิ่งต่อไปนี้ก่อน

    1. ยืนยันว่าการใช้งาน API ที่คุณเห็นใน Metrics Explorer ของคอนโซล Google Cloud นั้นถูกต้องตามกฎหมาย

    2. เพิ่มบริการที่ขาดหายไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง

    3. เพิ่มการจำกัดแอปพลิเคชันที่ขาดหายไปสำหรับบริการที่เพิ่มลงในรายการ API ด้วยตนเอง หากแอปอื่นๆ ที่เพิ่มเข้ามาต้องใช้ข้อจำกัดของแอปพลิเคชันประเภทอื่น โปรดดูหัวข้อย้ายข้อมูลไปยังคีย์ API หลายรายการ

    4. หากไม่จำเป็นต้องจำกัดคีย์โดยด่วน เช่น เนื่องจาก การใช้งานที่ไม่ได้รับอนุญาต คุณอาจรอ 1-2 วันเพื่อให้ คำแนะนำอัปเดต

สาเหตุที่คุณอาจเห็นคำแนะนำที่ไม่ปรากฏในแผนภูมิ

  • แอปหรือเว็บไซต์ของคุณส่งการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็วในระยะเวลาสั้นๆ เท่านั้น ในกรณีนี้ ให้ เปลี่ยนจากมุมมองแผนภูมิเพื่อแสดงตารางหรือทั้ง 2 อย่าง เนื่องจาก การใช้งานจะยังคงแสดงในคำอธิบาย ดูข้อมูลเพิ่มเติมได้ที่การสลับ คำอธิบาย แผนภูมิทั้งหมด

  • การเข้าชมของคุณมาจาก Maps Embed API ดูวิธีการได้ที่หัวข้อระบุ API ที่ใช้คีย์ API ของคุณ

  • การเข้าชมจากแอปหรือเว็บไซต์อยู่นอกช่วงวันที่ที่ใช้ได้ใน เครื่องมือสำรวจเมตริกของคอนโซล Google Cloud

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ในคอนโซล Google Cloud

  2. หากมี ให้เลือกใช้การจำกัดที่แนะนำ

    ใช้ข้อจำกัดที่แนะนำ

  3. เลือกตรวจสอบการใช้งาน API เพื่อยืนยันว่ามีการใช้คีย์ API ในบริการใด หากเห็นบริการอื่นที่ไม่ใช่ Google Maps Platform ให้หยุดชั่วคราว เพื่อตรวจสอบขั้นตอนการแนะนำข้างต้นด้วยตนเอง ดูขั้นตอนการแก้ปัญหาที่ส่วนต้นของหัวข้อใช้ข้อจำกัดคีย์ API ที่แนะนำ

  4. ตรวจสอบอีกครั้งว่าข้อจํากัดที่กรอกไว้ล่วงหน้าตรงกับเว็บไซต์และแอป ที่คุณคาดว่าจะใช้คีย์ API

    แนวทางปฏิบัติแนะนำ: บันทึกและนำข้อจำกัดของแอปพลิเคชันหรือ API ที่ไม่เกี่ยวข้องกับบริการของคุณออก หากมีสิ่งใดหยุดทำงานเนื่องจากทรัพยากร Dependency ที่ไม่คาดคิด คุณจะเพิ่มแอปหรือ API ที่จำเป็นกลับเข้าไปได้

    • หากคุณทราบว่าแอป เว็บไซต์ หรือ API หายไปจากคำแนะนำ อย่างชัดเจน ให้เพิ่มด้วยตนเองหรือรอ 2-3 วันเพื่อให้ คำแนะนำอัปเดต

    • หากต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับคําแนะนําที่แนะนํา โปรดติดต่อ ทีมสนับสนุน

  5. เลือกใช้

สิ่งที่ควรทำหากใบสมัครถูกปฏิเสธหลังจากใช้คำแนะนำ

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

SDK และ API ฝั่งไคลเอ็นต์

แอปที่ใช้เบราว์เซอร์และ WebView

โดยทั่วไปแล้ว เบราว์เซอร์สมัยใหม่จะปกปิดส่วนหัว Referer ในคำขอข้ามต้นทาง เพื่อเหตุผลด้านความเป็นส่วนตัว ซึ่งมักจะลดส่วนหัวดังกล่าวลงเหลือ Origin อย่างไรก็ตาม พฤติกรรมที่แน่นอนจะขึ้นอยู่กับreferrer-policyของ เว็บไซต์โฮสติ้งที่ใช้ และอาจแตกต่างกันไปตามเบราว์เซอร์และเวอร์ชันของผู้ใช้

โดยปกติแล้ว เว็บแอปพลิเคชันที่ใช้สคีม URI ที่ไม่โปร่งใสหรือสคีม URI ในเครื่องเพื่อโหลดเนื้อหาจะทำให้เบราว์เซอร์ที่แสดงผลหรือ WebView ปิดบังส่วนหัว Referer จากการเรียกขาออกทั้งหมด ซึ่งอาจทำให้คำขอที่ใช้คีย์ API ที่มีการจำกัดเว็บไซต์ล้มเหลว

ดูคำแนะนำเพิ่มเติมได้ที่โฮสต์แอปที่ใช้เบราว์เซอร์บนเซิร์ฟเวอร์

วิธีการแก้ปัญหาสำหรับแอปที่ใช้เบราว์เซอร์และ WebView

  • สำหรับ Maps JavaScript API โปรดดูรายละเอียดเกี่ยวกับวิธีให้สิทธิ์แอปพลิเคชันในคอนโซลดีบักของเบราว์เซอร์

    ระบบรองรับรูปแบบ URI ที่ไม่ค่อยได้ใช้บางส่วน หากบางส่วนของแอปพลิเคชันไม่ทำงานในสคีม URI ที่ไม่ปกติ แม้หลังจากให้สิทธิ์ผู้แนะนำที่จำเป็นแล้ว คุณอาจต้องโฮสต์แอปพลิเคชันจากระยะไกลในเซิร์ฟเวอร์และโหลดผ่าน HTTPS (หรือ HTTP)

    หากต้องการความช่วยเหลือเกี่ยวกับรูปแบบ URI ที่ซับซ้อน โปรดติดต่อทีมสนับสนุน

  • โดยทั่วไปแล้ว Maps Platform API อื่นๆ จะแสดง URL ที่มาที่คุณต้องให้สิทธิ์ในการตอบกลับข้อผิดพลาดของ API โดยถือว่าไคลเอ็นต์ส่งข้อมูลนี้พร้อมกับคำขอที่ถูกปฏิเสธ

    ไม่รองรับรูปแบบ URI ที่ซับซ้อน

แอป Android

ใช้ Android Debug Bridge (adb) หรือ Logcat

แอป iOS

ดูการดูข้อความบันทึก

แอปที่เรียกใช้บริการเว็บโดยตรง

สำหรับแอปพลิเคชันที่เรียกใช้ HTTPS REST API ของ Maps Platform หรือปลายทาง gRPC โดยตรงโดยไม่มี SDK ของ Google Maps Platform ฝั่งไคลเอ็นต์ โปรดดูด้านล่าง

แอป Android และ iOS

หากแอปพลิเคชัน Android หรือ iOS เรียกใช้บริการ Maps Platform โดยตรงโดยไม่ใช้ SDK ของไคลเอ็นต์ Google Maps Platform ที่มีอยู่ โปรดดูเคล็ดลับการแก้ปัญหาเพิ่มเติมที่หัวข้อแอป Android และแอป iOS รวมถึงหัวข้อการเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์อย่างปลอดภัยเพื่อดูแนวทางปฏิบัติแนะนำด้านความปลอดภัยในปัจจุบันสำหรับ Use Case บนอุปกรณ์เคลื่อนที่

หากแอปบันทึกการตอบกลับข้อผิดพลาดของ Maps Platform API วิธีการข้างต้นสำหรับ SDK ฝั่งไคลเอ็นต์อาจมีประโยชน์ในการ แก้ปัญหาการตรวจสอบสิทธิ์ด้วย

แอปฝั่งเซิร์ฟเวอร์

แอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ใช้คีย์ API ควรได้รับการรักษาความปลอดภัยผ่านการจำกัดที่อยู่ IP หากคุณใช้การจำกัดที่อยู่ IP กับคีย์ และบันทึกบริการของคุณบันทึกการตอบกลับข้อผิดพลาดของ Maps Platform API ให้ตรวจสอบบันทึกของระบบเพื่อดูข้อมูลเพิ่มเติม การตอบกลับข้อผิดพลาดจะมีที่อยู่ IP ของเซิร์ฟเวอร์ ที่คุณต้องให้สิทธิ์

แอปที่อิงตามเบราว์เซอร์หรือ WebView

แม้ว่า Maps Static API, Street View Static API และ API อื่นๆ ที่ใหม่กว่าของ Google Maps Platform จะรองรับข้อจำกัดเกี่ยวกับ URL ที่มาด้วย แต่โปรดทราบว่าเว็บเบราว์เซอร์หรือ WebView มีแนวโน้มที่จะจำกัดส่วนหัว Referer ไว้ที่ Origin สำหรับคำขอแบบข้ามต้นทาง และมีแนวโน้มที่จะไม่ส่งส่วนหัวดังกล่าวเลย เช่น สำหรับทรัพยากรที่เข้าถึงในเครื่อง หรือสำหรับทรัพยากรที่แสดงผ่านโปรโตคอลอื่นที่ไม่ใช่ HTTP หรือ HTTPS

หากใช้ Maps JavaScript API ในแอปพลิเคชันไม่ได้ และข้อจํากัดของเว็บไซต์ใช้ไม่ได้ โปรดดูการเรียกใช้บริการเว็บฝั่งไคลเอ็นต์อย่างปลอดภัย เพื่อดูวิธีออกการเรียกใช้บริการเว็บของ Maps Platform อย่างปลอดภัยจากภายในแอปพลิเคชันฝั่งไคลเอ็นต์ที่อิงตามเบราว์เซอร์

เคล็ดลับในการตรวจสอบข้อจำกัดของ API

หากต้องการตรวจสอบข้อจำกัด API ที่จำเป็น โปรดดูระบุ API ที่ใช้คีย์ API ของคุณ

หากไม่แน่ใจว่าจะใช้ข้อจำกัดใด ให้ทำดังนี้

  1. บันทึกข้อจำกัดปัจจุบันไว้ใช้อ้างอิงในอนาคต
  2. นำออกชั่วคราวขณะที่คุณตรวจสอบปัญหา คุณตรวจสอบการใช้งานเมื่อเวลาผ่านไปได้โดยทำตามขั้นตอนในตรวจสอบการใช้งานคีย์ API
  3. และติดต่อทีมสนับสนุนหากจำเป็น

ลบคีย์ API ที่ไม่ได้ใช้

ก่อนลบคีย์ API โปรดตรวจสอบว่าไม่มีการใช้คีย์ดังกล่าวในเวอร์ชันที่ใช้งานจริง หากไม่มีการเข้าชมที่สำเร็จ คุณก็ลบคีย์ได้อย่างปลอดภัย ดูข้อมูลเพิ่มเติมได้ที่ตรวจสอบการใช้คีย์ API

วิธีลบคีย์ API

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ในคอนโซล Google Cloud

  2. เลือกคีย์ API ที่ต้องการลบ

  3. เลือกปุ่มลบที่ด้านบนของหน้า

  4. ในหน้าลบข้อมูลเข้าสู่ระบบ ให้เลือกลบ

    การลบคีย์ API จะใช้เวลาสักครู่ในการเผยแพร่ หลังจากที่การเผยแพร่เสร็จสมบูรณ์ ระบบจะปฏิเสธการเข้าชมที่ใช้คีย์ API ที่ลบไปแล้ว

โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API

การหมุนเวียนคีย์ API จะสร้างคีย์ใหม่ที่มีข้อจำกัดทั้งหมดของคีย์เก่า ในช่วงเวลานี้ ระบบจะยอมรับทั้งคีย์เก่าและคีย์ใหม่ ซึ่งจะช่วยให้คุณมี โอกาสย้ายข้อมูลแอปไปใช้คีย์ใหม่

ก่อนหมุนเวียนคีย์ API

  • ก่อนอื่นให้ลองจำกัดคีย์ API ตามที่อธิบายไว้ในจำกัดคีย์ API

  • หากจำกัดคีย์ API ไม่ได้เนื่องจากประเภทการจำกัดแอปพลิเคชันขัดแย้งกัน ให้ย้ายข้อมูลไปยังคีย์ใหม่หลายรายการ (ที่จำกัด) ตามที่อธิบายไว้ในย้ายข้อมูลไปยังคีย์ API หลายรายการ การย้ายข้อมูลช่วยให้คุณควบคุมการย้ายข้อมูลและไทม์ไลน์การเปิดตัวคีย์ API ใหม่ได้

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

  1. เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ในคอนโซล Google Cloud

  2. เปิดคีย์ API ที่ต้องการหมุนเวียน

  3. เลือกหมุนเวียนคีย์ที่ด้านบนของหน้า

  4. เปลี่ยนชื่อคีย์ API (ไม่บังคับ)

  5. เลือกสร้าง

  6. อัปเดตแอปพลิเคชันให้ใช้คีย์ใหม่

หลังจากอัปเดตแอปพลิเคชันให้ใช้คีย์ใหม่แล้ว ให้ลบคีย์เก่าโดยคลิกปุ่มลบคีย์ก่อนหน้าในส่วนคีย์ก่อนหน้า ของหน้าคีย์ API ใหม่

ย้ายข้อมูลไปยังคีย์ API หลายรายการ

หากต้องการย้ายข้อมูลจากการใช้คีย์ API เดียวสำหรับหลายแอปไปเป็นคีย์ API ที่ไม่ซ้ำกัน สำหรับแต่ละแอป ให้ทำดังนี้

  1. ระบุแอปที่ต้องใช้คีย์ใหม่:

    • เว็บแอปเป็นแอปที่อัปเดตได้ง่ายที่สุด เนื่องจากคุณควบคุมโค้ดทั้งหมดได้ วางแผนที่จะอัปเดตคีย์ของแอปบนเว็บทั้งหมด
    • แอปบนอุปกรณ์เคลื่อนที่นั้นยากกว่ามาก เนื่องจากลูกค้าต้องอัปเดตแอป ก่อนจึงจะใช้คีย์ใหม่ได้
  2. สร้างและจำกัดคีย์ใหม่: เพิ่มทั้งข้อจำกัดของแอปพลิเคชันและข้อจำกัด API อย่างน้อย 1 รายการ ดูข้อมูลเพิ่มเติมได้ที่แนวทางปฏิบัติแนะนำ

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

แยกการใช้งานฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ออกเป็นโปรเจ็กต์แยกกัน

หากคุณต้องการเรียกใช้บริการของ Google Maps Platform ทั้งจากแอปพลิเคชันฝั่งเซิร์ฟเวอร์ และจากแอปพลิเคชันฝั่งไคลเอ็นต์โดยตรงซึ่งทำงานบนอุปกรณ์ของผู้ใช้ปลายทาง Google ขอแนะนำให้แบ่งการใช้งานระหว่าง 2 โปรเจ็กต์แยกกัน

วิธีนี้ช่วยให้คุณใช้ขีดจำกัดโควต้าต่อนาทีและต่อผู้ใช้ที่เหมาะสมกับ บริการส่วนใหญ่ของ Google Maps Platform ในโปรเจ็กต์ฝั่งไคลเอ็นต์ ซึ่งจะช่วย ให้ผู้ใช้ปลายทางทุกคนได้รับโควต้าโปรเจ็กต์โดยรวมอย่างเท่าเทียมกัน โดยไม่ส่งผลกระทบต่อกัน

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

ปิดใช้บริการที่ไม่ได้ใช้

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

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

ใช้ SDK ฝั่งไคลเอ็นต์

เมื่อใช้ SDK ของ Google Maps Platform ฝั่งไคลเอ็นต์ที่ให้ไว้ คุณจะสามารถใช้ข้อจำกัดที่เหมาะสมกับคีย์ API เพื่อรักษาการใช้บริการได้เสมอ

การใช้ SDK ฝั่งไคลเอ็นต์ยังช่วยให้คุณใช้กลไกการรักษาความปลอดภัยขั้นสูงได้มากขึ้นด้วย เช่น Firebase App Check ในพื้นผิว API ของ Maps Platform ที่รองรับ ดูรายละเอียดเพิ่มเติมได้ที่ ใช้ App Check เพื่อรักษาความปลอดภัยคีย์ API

หากไม่มี SDK ฝั่งไคลเอ็นต์สำหรับแพลตฟอร์มของคุณ โปรดดูรักษาความปลอดภัยให้การเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์

ดูความพร้อมใช้งานของ SDK ของ Google Maps Platform ฝั่งไคลเอ็นต์สำหรับแพลตฟอร์มต่างๆ ได้ที่ ข้อจำกัดของแอปพลิเคชันและ API ที่แนะนำ

ปกป้องการใช้งาน Static Web API

Static Web API เช่น Maps Static API และ Street View Static API จะคล้ายกับการเรียกใช้ Web Service API

คุณเรียกใช้ทั้ง 2 อย่างโดยใช้ HTTPS REST API และโดยทั่วไปคุณจะสร้าง URL คำขอ API บนเซิร์ฟเวอร์ อย่างไรก็ตาม Static Web API จะสร้างรูปภาพที่คุณฝังในโค้ด HTML ที่สร้างขึ้นได้แทนที่จะส่งคืนการตอบกลับ JSON ที่สำคัญกว่านั้นคือโดยทั่วไปแล้วไคลเอ็นต์ของผู้ใช้ปลายทาง ไม่ใช่เซิร์ฟเวอร์ เป็นผู้เรียกใช้บริการ Google Maps Platform

ใช้ลายเซ็นดิจิทัล

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

ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลได้ที่คำแนะนำเกี่ยวกับลายเซ็นดิจิทัล

ปกป้องข้อมูลลับในการลงนาม

เพื่อปกป้อง Static Web API อย่าฝังข้อมูลลับในการลงนาม API โดยตรงในโค้ดหรือในโครงสร้างแหล่งที่มา หรือเปิดเผยในแอปพลิเคชันฝั่งไคลเอ็นต์ ทำตามแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อปกป้องข้อมูลลับในการรับรอง

  • สร้าง URL คำขอ Maps Static API และ Street View Static API ที่ลงชื่อแล้วฝั่งเซิร์ฟเวอร์เมื่อ แสดงหน้าเว็บ หรือในการตอบสนองต่อคำขอจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่

    สำหรับเนื้อหาเว็บแบบคงที่ คุณสามารถใช้วิดเจ็ตลงนามใน URL ตอนนี้ในหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ใน Cloud Console

    สำหรับเนื้อหาเว็บแบบไดนามิก โปรดดูตัวอย่างโค้ดการลงชื่อคำขอ URL ที่มีอยู่

  • จัดเก็บข้อมูลลับในการลงนามของ Store ไว้ภายนอกซอร์สโค้ดและซอร์ส ทรีของแอปพลิเคชัน หากคุณใส่ข้อมูลลับในการลงนามหรือข้อมูลส่วนตัวอื่นๆ ในตัวแปรสภาพแวดล้อม หรือรวมไฟล์ที่จัดเก็บแยกกันแล้วแชร์โค้ด ข้อมูลลับในการลงนามจะไม่รวมอยู่ในไฟล์ที่แชร์ หากจัดเก็บข้อมูลลับในการลงนามหรือข้อมูลส่วนตัวอื่นๆ ไว้ในไฟล์ ให้เก็บไฟล์ไว้นอกโครงสร้างแหล่งที่มาของแอปพลิเคชันเพื่อไม่ให้ข้อมูลลับในการลงนามอยู่ในระบบควบคุมซอร์สโค้ด ข้อควรระวังนี้สำคัญอย่างยิ่งหากคุณใช้ระบบจัดการซอร์สโค้ดสาธารณะ เช่น GitHub

ปกป้องคีย์ API ของบริการเว็บ

หากต้องการใช้ API และบริการของ Google Maps Platform อย่างปลอดภัยจากแอปฝั่งไคลเอ็นต์ โปรดดูหัวข้อใช้ SDK ฝั่งไคลเอ็นต์และรักษาความปลอดภัยให้กับการเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์

จัดเก็บคีย์ API ไว้ภายนอกซอร์สโค้ดหรือซอร์สทรีของแอปพลิเคชัน หากคุณใส่คีย์ API หรือข้อมูลอื่นๆ ในตัวแปรสภาพแวดล้อมหรือรวมไฟล์ที่จัดเก็บแยกต่างหากแล้วแชร์โค้ด คีย์ API จะไม่รวมอยู่ในไฟล์ที่แชร์ ซึ่งมีความสำคัญเป็นพิเศษหากคุณใช้ระบบการจัดการซอร์สโค้ดแบบสาธารณะ เช่น GitHub

Google ขอแนะนำให้ใช้ข้อจำกัด API กับคีย์ที่ใช้สำหรับ Maps Platform เพื่อช่วยป้องกันไม่ให้มีการใช้คีย์ API ของเว็บเซอร์วิสโดยไม่ตั้งใจ นอกจากนี้ การใช้ข้อจำกัดด้านที่อยู่ IP กับคีย์บริการเว็บจะช่วยปกป้องคีย์จากการใช้งานที่ไม่ได้รับอนุญาตจากที่อยู่ IP อื่นๆ แม้ว่าคีย์จะรั่วไหลโดยไม่ตั้งใจก็ตาม

ใช้ OAuth สำหรับแอปฝั่งเซิร์ฟเวอร์

OAuth 2.0 เป็นมาตรฐานแบบเปิดสำหรับการมอบสิทธิ์เข้าถึง

แม้ว่าโปรโตคอล OAuth 2.0 จะรองรับ Use Case ที่ผู้ใช้ปลายทางให้สิทธิ์แอปพลิเคชันเข้าถึงข้อมูลส่วนตัวในนามของตน แต่ Use Case ที่ต้องการสำหรับ OAuth 2.0 กับ Maps Platform คือให้นักพัฒนาซอฟต์แวร์ใช้โทเค็นเพื่อการเข้าถึงชั่วคราวเพื่อให้สิทธิ์แอปพลิเคชันเรียกใช้ API ในนามของบัญชีบริการของโปรเจ็กต์ที่อยู่ในระบบคลาวด์ Google ด้วยสิทธิ์ของบัญชีบริการ

เนื่องจากบัญชีบริการอาจมีสิทธิ์ที่กว้างมาก เราจึงขอแนะนำให้ใช้ OAuth 2.0 เพื่อให้สิทธิ์การเรียก Server-to-Server ระหว่างแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่เชื่อถือได้ของนักพัฒนาซอฟต์แวร์กับเซิร์ฟเวอร์ของ Google Maps Platform

สำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ที่ทำงานบนอุปกรณ์ของผู้ใช้ปลายทาง เราขอแนะนำให้ใช้วิธีการตรวจสอบสิทธิ์อื่นๆ เช่น คีย์ API

หากต้องการใช้ OAuth 2.0 เพื่อให้สิทธิ์การรับส่งข้อมูลแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ ให้มองหาหัวข้อ OAuth ในเอกสารประกอบของ API

ตัวอย่างเช่น หัวข้อ OAuth สำหรับ Address Validation API

การเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์ที่ปลอดภัย

หาก SDK ฝั่งไคลเอ็นต์ไม่พร้อมใช้งาน ให้ดูคําแนะนําด้านล่าง

ใช้พร็อกซีเซิร์ฟเวอร์

การใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยเป็นแหล่งที่มาที่เชื่อถือได้สำหรับการโต้ตอบกับปลายทางของเว็บเซอร์วิส Google Maps Platform จากแอปพลิเคชันฝั่งไคลเอ็นต์โดยไม่เปิดเผยคีย์ API, ข้อมูลลับในการรับรอง หรือบัญชีบริการ Google Cloud แก่ผู้ใช้ที่ไม่ได้รับอนุญาต

ประเด็นสำคัญ:

  • สร้างคำขอ Google Maps Platform บนพร็อกซีเซิร์ฟเวอร์ อย่าอนุญาตให้ไคลเอ็นต์ส่งต่อการเรียก API ที่กำหนดเองโดยใช้พร็อกซี

  • ประมวลผลคำตอบของ Google Maps Platform ในเซิร์ฟเวอร์พร็อกซี กรองข้อมูลที่ลูกค้าไม่ต้องการออก

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้พร็อกซีเซิร์ฟเวอร์ได้ที่การใช้พร็อกซีเซิร์ฟเวอร์กับไลบรารีของไคลเอ็นต์ Google Data API

การเรียกใช้เว็บเซอร์วิสบนเว็บบนมือถือโดยตรงอย่างปลอดภัย

หากตั้งค่าพร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยสำหรับแอปฝั่งไคลเอ็นต์ไม่ได้ ให้รักษาความปลอดภัยของแอปพลิเคชันโดยทำตามขั้นตอนต่อไปนี้

  1. ใช้ส่วนหัว HTTP ดังนี้

    • Android: ใช้ส่วนหัว HTTP ของ X-Android-Package และ X-Android-Cert

    • iOS: ใช้ส่วนหัว HTTP ของ X-Ios-Bundle-Identifier

  2. เพิ่มข้อจํากัดของแอปพลิเคชันที่เกี่ยวข้องลงในคีย์ Android หรือ iOS

  3. ก่อนที่จะพิจารณาออกการเรียกจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ไปยัง บริการเว็บ REST API ของ Google Maps Platform โดยตรง ให้ตรวจสอบว่าคำขอที่มีตัวระบุแอปพลิเคชัน Android หรือ iOS ที่ไม่ถูกต้องถูกปฏิเสธ

    หากอุปกรณ์ปลายทางที่ทดสอบไม่รองรับการจำกัดแอปพลิเคชัน Android และ iOS Google ขอแนะนำให้คุณใช้เซิร์ฟเวอร์พร็อกซีที่ปลอดภัยระหว่างไคลเอ็นต์บนอุปกรณ์เคลื่อนที่กับปลายทางของเว็บเซอร์วิส Google Maps Platform

เคล็ดลับสำหรับแอปพลิเคชัน Android

  • ก่อนที่จะผสานรวมแอปพลิเคชัน Android กับบริการของ Google Maps Platform ให้ตรวจสอบว่ารหัสแอปพลิเคชัน (หรือที่เรียกว่าชื่อแพ็กเกจ) มีรูปแบบถูกต้อง ดูรายละเอียดได้ที่ กำหนดค่าโมดูลแอป ในเอกสารประกอบของ Android

  • หากต้องการส่งบัตร X-Android-Package จากแอปพลิเคชันโดยตรง ให้ค้นหาบัตรโดยใช้โปรแกรมผ่าน Context.getPackageName()

  • หากต้องการส่ง X-Android-Cert โดยตรงจากแอปพลิเคชัน ให้คำนวณลายนิ้วมือ SHA-1 ที่จำเป็นของใบรับรองการรับรองแอปพลิเคชัน ซึ่งเข้าถึงได้ผ่าน PackageInfo.signingInfo

  • หากคุณให้สิทธิ์แอปพลิเคชัน Android โดยใช้คอนโซล Google Cloud โปรดทราบว่า UI คาดหวังให้ลายนิ้วมือ SHA-1 เป็นสตริงที่คั่นด้วยเครื่องหมายโคลอน เช่น 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33 อย่างไรก็ตาม gcloudเครื่องมือและ API คีย์ API คาดหวังสตริงเลขฐานสิบหก โดยไม่มีตัวคั่น

เคล็ดลับสำหรับแอปพลิเคชัน iOS

  • ก่อนที่จะผสานรวมแอปพลิเคชัน iOS กับบริการของ Google Maps Platform โปรดตรวจสอบว่ารหัสชุดของคุณมีรูปแบบที่ถูกต้อง

  • โดยปกติแล้ว คุณควรส่งรหัสชุดของBundle หลักในส่วนX-Ios-Bundle-Identifier ส่วนหัวเสมอเมื่อให้สิทธิ์แอปพลิเคชัน iOS

ดูข้อมูลเพิ่มเติมได้ที่บทความ จัดการคีย์ API และ ใช้คีย์ API เพื่อเข้าถึง API

โฮสต์แอปที่ใช้เบราว์เซอร์บนเซิร์ฟเวอร์

เฟรมเวิร์ก เช่น Apache Cordova ช่วยให้คุณสร้าง แอปแบบไฮบริดแบบหลายแพลตฟอร์มที่ทำงานภายใน WebView ได้อย่างสะดวก อย่างไรก็ตาม เราไม่รับประกันว่าข้อจำกัดของเว็บไซต์สำหรับคีย์ API จะทำงานได้อย่างถูกต้อง เว้นแต่จะโหลดเว็บแอปโดยใช้ HTTP หรือ HTTPS จากเว็บไซต์ที่คุณควบคุมและให้สิทธิ์

ในหลายกรณี ทรัพยากรที่รวมไว้ซึ่งโหลดจากภายในแอปพลิเคชันแบบไฮบริดในเครื่อง หรือเข้าถึงโดยใช้ URL ของไฟล์ในเครื่องจะทำให้การให้สิทธิ์ตามผู้แนะนำใช้งานไม่ได้ เนื่องจากเครื่องมือเบราว์เซอร์ที่ขับเคลื่อน WebView จะละเว้นการส่งส่วนหัว Referer หากต้องการหลีกเลี่ยงปัญหานี้ ให้โฮสต์เว็บแอปพลิเคชันฝั่งเซิร์ฟเวอร์ ไม่ใช่ฝั่งไคลเอ็นต์

หรือสำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Google Maps Platform Android และ iOS SDK แบบเนทีฟที่มีอยู่แทนการใช้ SDK บนเว็บ

ใช้ App Check เพื่อรักษาความปลอดภัยของคีย์ API

SDK และ API บางอย่างของ Maps ช่วยให้คุณผสานรวมกับ Firebase App Check ได้ App Check ช่วย ปกป้องการเรียกจากแอปของคุณไปยัง Google Maps Platform โดยการบล็อกการเข้าชม ที่มาจากแหล่งที่มาอื่นๆ นอกเหนือจากแอปที่ถูกต้อง โดยจะตรวจสอบโทเค็นจากผู้ให้บริการเอกสารรับรอง การผสานรวมแอปกับ App Check ช่วยป้องกันคำขอที่เป็นอันตราย คุณจึงไม่ต้องเสียค่าใช้จ่ายสำหรับการเรียก API ที่ไม่ได้รับอนุญาต

วิธีการผสานรวม App Check

จัดการการใช้คีย์ API โดยไม่ได้รับอนุญาต

หากตรวจพบการใช้คีย์ API ที่ไม่ได้รับอนุญาต ให้ทำดังนี้เพื่อแก้ไขปัญหา

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

  2. หากใช้ Places SDK หรือ Maps JavaScript API คุณก็ใช้ App Check เพื่อรักษาความปลอดภัยของคีย์ API ได้เช่นกัน

  3. เปลี่ยนหรือหมุนเวียนคีย์ในกรณีต่อไปนี้เท่านั้น

    • คุณตรวจพบการใช้งานที่ไม่ได้รับอนุญาตในคีย์ที่ไม่สามารถจำกัดได้หรือถูกจำกัดอยู่แล้ว และ App Check ไม่เกี่ยวข้อง

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

    ก่อนดำเนินการต่อ โปรดอ่าน โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API

  4. หากยังคงพบปัญหาหรือต้องการความช่วยเหลือ โปรดติดต่อทีมสนับสนุน

ข้อจำกัดของแอปพลิเคชันและ API ที่แนะนำ

ส่วนต่อไปนี้จะแนะนำการจำกัดแอปพลิเคชันและ API ที่เหมาะสมสำหรับ API, SDK หรือบริการแต่ละรายการของ Google Maps Platform

ข้อจำกัด API ที่แนะนำ

หลักเกณฑ์ต่อไปนี้สำหรับการจำกัด API มีผลกับบริการ Google Maps Platform ทั้งหมด

  • จำกัดคีย์ API ให้ใช้ได้เฉพาะกับ API ที่คุณใช้ โดยมีข้อยกเว้นต่อไปนี้

    • หากแอปใช้ Places SDK สำหรับ Android หรือ Places SDK สำหรับ iOS ให้ให้สิทธิ์ Places API (ใหม่) หรือ Places API โดยขึ้นอยู่กับเวอร์ชัน SDK ที่คุณใช้ 1

    • หากแอปใช้ Maps JavaScript API ให้ให้สิทธิ์แอปในคีย์เสมอ

    • หากคุณใช้บริการ Maps JavaScript API ต่อไปนี้ด้วย คุณควรให้สิทธิ์ API ที่เกี่ยวข้องเหล่านี้ด้วย

      บริการ การจำกัด API
      บริการเส้นทาง (เดิม) Directions API (เดิม)
      บริการเมทริกซ์ระยะทาง (เดิม) Distance Matrix API (เดิม)
      บริการระดับความสูง Elevation API
      บริการเข้ารหัสพิกัดภูมิศาสตร์ Geocoding API
      คลาสสถานที่ วิดเจ็ตการเติมข้อความอัตโนมัติของสถานที่ (ใหม่) &Place Autocomplete Data API Places API (ใหม่)2
      ไลบรารี Places บริการ Places และ วิดเจ็ตการเติมข้อความอัตโนมัติของสถานที่ Places API2

1 ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบของ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS

2 หากไม่แน่ใจว่าต้องให้สิทธิ์ Places API (ใหม่) หรือ Places API (เดิม) โปรดดูเอกสารประกอบของ Maps JavaScript API

ตัวอย่างมีดังต่อไปนี้

  • คุณใช้ Maps SDK สำหรับ Android และ Places SDK สำหรับ Android ดังนั้นคุณจึงรวม Maps SDK สำหรับ Android และ Places API (ใหม่) เป็นข้อจำกัด API

  • เว็บไซต์ของคุณใช้บริการ Elevation ของ Maps JavaScript API และ Maps Static API ดังนั้นคุณจึงเพิ่มข้อจำกัด API สำหรับ API ต่อไปนี้ทั้งหมด

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

การจำกัดแอปพลิเคชันที่แนะนำ

เว็บไซต์

สำหรับเว็บไซต์ที่ใช้บริการ Maps JavaScript API, Maps Static API หรือ Street View Static API หรือเรียกใช้บริการ Google Maps Platform ล่าสุดโดยตรงผ่าน HTTPS REST API หรือ gRPC ให้ใช้การจํากัดแอปพลิเคชันเว็บไซต์

1 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Maps SDK สำหรับ Android และ Maps SDK สำหรับ iOS แบบเนทีฟ

2 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS แบบเนทีฟ

3 ดูเพิ่มเติมที่หัวข้อปกป้องการใช้งาน Static Web API

เว็บไซต์ที่ใช้ Maps Embed API

แม้ว่าการใช้ Maps Embed API จะไม่มีค่าใช้จ่าย แต่คุณก็ควร จำกัดคีย์ API ที่ใช้เพื่อป้องกันการละเมิดในบริการอื่นๆ

แนวทางปฏิบัติแนะนำ: สร้างคีย์ API แยกต่างหากสําหรับการใช้ Maps Embed API และจํากัดคีย์นี้ให้ใช้ได้กับ เฉพาะ Maps Embed API เท่านั้น ข้อจำกัดนี้จะรักษาความปลอดภัยของคีย์ได้อย่างเพียงพอ ซึ่งจะป้องกันไม่ให้มีการใช้คีย์โดยไม่ได้รับอนุญาตในบริการอื่นๆ ของ Google หากต้องการควบคุมอย่างเต็มที่ว่าคีย์ Maps Embed API จะใช้ได้จากที่ใด Google ขอแนะนำให้สมัครใช้ข้อจำกัดของแอปพลิเคชันเว็บไซต์ด้วย

หากไม่สามารถแยกการใช้งาน Maps Embed API ไปยังคีย์ API อื่น ให้รักษาความปลอดภัยของคีย์ที่มีอยู่โดยใช้ข้อจำกัดของแอปพลิเคชันเว็บไซต์

แอปและเซิร์ฟเวอร์ที่ใช้บริการเว็บ

สำหรับเซิร์ฟเวอร์และแอปฝั่งไคลเอ็นต์จากเครือข่ายภายในองค์กรที่เชื่อถือได้ซึ่งใช้เว็บเซอร์วิสร่วมกับคีย์ API ให้ใช้ข้อจำกัดแอปพลิเคชัน IP addresses

ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ API เหล่านี้

4 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Navigation SDK

5 ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยเพื่อการใช้งานอุปกรณ์เคลื่อนที่อย่างปลอดภัย

6 สำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ ให้พิจารณาใช้บริการตำแหน่งทางภูมิศาสตร์แบบเนทีฟที่แพลตฟอร์มนำเสนอ เช่น W3C Geolocation สำหรับเว็บเบราว์เซอร์, LocationManager หรือ ผู้ให้บริการ Fused Location API สำหรับ Android หรือเฟรมเวิร์ก Core Location ของ Apple สำหรับ iOS

7 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS

8 เพื่อการใช้งานฝั่งไคลเอ็นต์ที่ปลอดภัย ให้ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัย

แอป Android

สำหรับแอปใน Android ให้ใช้ข้อจำกัดแอปพลิเคชัน Android apps ใช้สำหรับ แอปที่ใช้ SDK เหล่านี้

นอกจากนี้ ให้ป้องกันการเช็คอินคีย์ API ลงในการควบคุมเวอร์ชันโดยไม่ตั้งใจด้วยการใช้ปลั๊กอิน Secrets Gradle เพื่อแทรกข้อมูลลับ จากไฟล์ในเครื่องแทนการจัดเก็บไว้ใน Android Manifest

แอป iOS

สำหรับแอปใน iOS ให้ใช้iOS appsการจำกัดแอปพลิเคชัน ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ SDK ต่อไปนี้

อ่านเพิ่มเติม