ใช้ OAuth

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

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

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

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

เกี่ยวกับ OAuth

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

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

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

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

หากต้องการใช้ OAuth กับ Route Optimization API คุณต้องกำหนดขอบเขตโทเค็น OAuth ดังนี้

  • https://www.googleapis.com/auth/cloud-platform

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

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

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

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

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

  1. สร้างโปรเจ็กต์และเปิดใช้การเรียกเก็บเงินหากยังไม่ได้สร้าง โดยทำตามขั้นตอนใน ตั้งค่าใน Google Cloud Console
  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.

  • ระบุประเภทเนื้อหาของคำขอคือ application/json

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

curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
--data-binary @- << EOM
{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        }
      }
    ],
    "globalStartTime": "2023-01-13T16:00:00-08:00",
    "globalEndTime": "2023-01-14T16:00:00-08:00"
  }
}
EOM

การแก้ปัญหา

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