ใช้ OAuth

นักพัฒนาแอปในเขตเศรษฐกิจยุโรป (EEA)

Geocoding API รองรับการใช้ OAuth 2.0 สำหรับการตรวจสอบสิทธิ์ Google รองรับสถานการณ์ทั่วไปของ OAuth 2.0 เช่น สำหรับเว็บเซิร์ฟเวอร์

เอกสารนี้อธิบายวิธีส่งโทเค็น OAuth ไปยังการเรียก Geocoding API ในสภาพแวดล้อมการพัฒนา ดูวิธีการใช้ OAuth ในสภาพแวดล้อมเวอร์ชันที่ใช้งานจริงได้ที่การตรวจสอบสิทธิ์ที่ Google

ก่อนเริ่มต้น

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

เกี่ยวกับ OAuth

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

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

หรือคุณอาจใช้ Geocoding API เป็นส่วนหนึ่งของแอปบนอุปกรณ์เคลื่อนที่ Android หรือ iOS ก็ได้ โปรดดูข้อมูลทั่วไปเกี่ยวกับการใช้ OAuth กับ Geocoding API รวมถึงข้อมูลเกี่ยวกับการจัดการโทเค็นการเข้าถึงสําหรับสภาพแวดล้อมการติดตั้งใช้งานต่างๆ ที่หัวข้อการใช้ OAuth 2.0 เพื่อเข้าถึง Google API

เกี่ยวกับขอบเขต OAuth

หากต้องการใช้ OAuth กับ Geocoding API คุณต้องกำหนดขอบเขตที่ถูกต้องให้กับโทเค็น OAuth Geocoding API รองรับขอบเขตต่อไปนี้

  • https://www.googleapis.com/auth/maps-platform.geocode — ใช้กับปลายทาง Geocoding API ทั้งหมด
  • https://www.googleapis.com/auth/maps-platform.geocode.address — ใช้กับ GeocodeAddress เท่านั้นสำหรับการเปลี่ยนรูปแบบพิกัดภูมิศาสตร์
  • https://www.googleapis.com/auth/maps-platform.geocode.location — ใช้กับ GeocodeLocation สำหรับการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับเท่านั้น
  • https://www.googleapis.com/auth/maps-platform.geocode.place — ใช้กับ GeocodePlace เท่านั้นสำหรับการเข้ารหัสพิกัดภูมิศาสตร์ของสถานที่

นอกจากนี้ คุณยังใช้https://www.googleapis.com/auth/cloud-platform ขอบเขตทั่วไปสําหรับปลายทาง Geocoding API ทั้งหมดได้ด้วย ขอบเขตดังกล่าวมีประโยชน์ในระหว่างการพัฒนาเนื่องจากเป็นขอบเขตเริ่มต้นที่ใช้เมื่อสร้างโทเค็นโดยใช้ gcloud

ตัวอย่าง: ลองเรียก REST API ในสภาพแวดล้อมการพัฒนาในเครื่อง

หากต้องการลองใช้ Geocoding API โดยใช้โทเค็น OAuth แต่ไม่ได้ตั้งค่าสภาพแวดล้อมเพื่อสร้างโทเค็น คุณสามารถใช้ขั้นตอนในส่วนนี้เพื่อเรียกใช้

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

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะทำคําขอ REST โดยใช้ ADC ให้ใช้ Google Cloud CLI เพื่อระบุข้อมูลเข้าสู่ระบบให้กับ ADC โดยทําดังนี้

  1. หากยังไม่ได้สร้างโปรเจ็กต์และเปิดใช้การเรียกเก็บเงิน ให้ทําตามขั้นตอนในหัวข้อตั้งค่าในคอนโซล Google Cloud
  2. ติดตั้งและเริ่มต้น gcloud CLI
  3. เรียกใช้คำสั่ง gcloud ต่อไปนี้บนเครื่องของคุณเพื่อสร้างไฟล์ข้อมูลเข้าสู่ระบบ

    gcloud auth application-default login
  4. หน้าจอการเข้าสู่ระบบจะปรากฏขึ้น หลังจากเข้าสู่ระบบแล้ว ระบบจะจัดเก็บข้อมูลเข้าสู่ระบบไว้ในไฟล์ข้อมูลเข้าสู่ระบบในเครื่องที่ ADC ใช้

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

ส่งคําขอ REST

ในตัวอย่างนี้ คุณจะส่งส่วนหัวคำขอ 2 รายการ ดังนี้

  • ส่งโทเค็น OAuth ในส่วนหัว Authorization โดยใช้คําสั่งต่อไปนี้เพื่อสร้างโทเค็น

    gcloud auth application-default print-access-token

    โทเค็นที่แสดงผลมีขอบเขตเป็น https://www.googleapis.com/auth/cloud-platform.

  • ส่งรหัสหรือชื่อโปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินในส่วนหัว X-Goog-User-Project ดูข้อมูลเพิ่มเติมได้ที่ตั้งค่าใน Cloud Console

ตัวอย่างต่อไปนี้จะเรียกใช้ Geocoding API โดยใช้โทเค็น OAuth

curl -X GET -H 'Content-Type: application/json' \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://geocode.googleapis.com/v4beta/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA"

การแก้ปัญหา

หากคําขอแสดงข้อความแสดงข้อผิดพลาดเกี่ยวกับข้อมูลเข้าสู่ระบบของผู้ใช้ปลายทางที่ API นี้ไม่รองรับ ให้ดูข้อมูลเข้าสู่ระบบของผู้ใช้ใช้งานไม่ได้