ตั้งค่า Places API (ใหม่)

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

เอกสารนี้อธิบายขั้นตอนที่จำเป็นในการเริ่มใช้ Places API (ใหม่)

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

ขั้นตอนนี้จะแนะนำวิธีตั้งค่าบัญชี Google Cloud และโปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน นอกจากนี้ คุณควรทำความคุ้นเคยกับวิธีเรียกเก็บเงินสำหรับการใช้ Places API (ใหม่) ด้วย

  1. ตรวจสอบการเรียกเก็บเงินและค่าใช้จ่ายสำหรับการใช้งานที่การใช้งานและการเรียกเก็บเงินของ Places API (ใหม่)
  2. ตรวจสอบว่าคุณมีบัญชี Google Cloud

    ลงชื่อเข้าใช้คอนโซล Google Cloud
  3. ยืนยันว่าคุณมีโปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน

    ไปที่หน้าการเรียกเก็บเงิน
    1. เลือกโปรเจ็กต์เพื่อเปิดหน้าการเรียกเก็บเงิน
    2. ในหน้าการเรียกเก็บเงิน ให้ทำดังนี้

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

เปิดใช้ API

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

วิธีเปิดใช้ API

คอนโซล

  1. เปิดหน้าผลิตภัณฑ์ในคอนโซล Google Cloud โดยทำดังนี้

    เปิดใช้ Places API (ใหม่)
  2. คลิกปุ่มเปิดใช้

gcloud

gcloud services enable \
    --project "PROJECT" \
    "places.googleapis.com"

อ่านข้อมูลเพิ่มเติมเกี่ยวกับ Google Cloud SDK, การติดตั้ง Cloud SDK และคำสั่งต่อไปนี้

รับคีย์ API เพื่อใช้กับ Places API (ใหม่)

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

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

คอนโซล

  1. ไปที่หน้า Google Maps Platform > คีย์และข้อมูลเข้าสู่ระบบ

    ไปที่หน้าคีย์และข้อมูลเข้าสู่ระบบ

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

    • สร้างคีย์ใหม่:

      1. คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API
      2. ในแผงสร้างคีย์ API ให้เปิดรายการเลือกข้อจำกัดของ API
      3. ล้าง API ที่คีย์นี้ไม่ต้องการ และตรวจสอบว่าได้เลือก Places API (ใหม่) ไว้
      4. คลิกสร้าง แผงจะแสดงคีย์ API ใหม่
    • ใช้คีย์ที่มีอยู่

      1. คลิกชื่อคีย์
      2. ในรายการเลือกข้อจำกัดของ API ให้เลือก Places API (ใหม่)
      3. คลิกบันทึก

    การเลือก API ที่นี่ไม่ได้เป็นการเปิดใช้ API ตรวจสอบว่าได้เปิดใช้ Places API (ใหม่) ในหน้าคลัง API แล้ว

  4. หากต้องการดูสตริงคีย์ในภายหลัง ให้ไปที่หน้าคีย์และข้อมูลเข้าสู่ระบบ แล้วคลิกแสดงคีย์สำหรับคีย์นั้น

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

gcloud

แทนที่ PROJECT_ID ด้วยรหัสโปรเจ็กต์ในคำสั่งต่อไปนี้

  • สร้างคีย์ใหม่: เรียกใช้คำสั่งต่อไปนี้ และแทนที่ DISPLAY_NAME ด้วยชื่อคีย์

    gcloud services api-keys create \
        --project="PROJECT_ID" \
        --display-name="DISPLAY_NAME" \
        --api-target=service=places.googleapis.com

    อ่านข้อมูลเพิ่มเติมเกี่ยวกับ Google Cloud SDK, การติดตั้ง Cloud SDK และคำสั่งต่อไปนี้

  • ใช้คีย์ที่มีอยู่: เรียกใช้คำสั่งต่อไปนี้ และแทนที่ KEY_ID ด้วยรหัสของคีย์ แฟล็ก --append จะเก็บ API ที่คีย์อนุญาตไว้แล้ว หากไม่มีตัวเลือกนี้ คำสั่งจะแทนที่ตัวเลือกเหล่านั้น

    gcloud services api-keys update KEY_ID \
        --project="PROJECT_ID" \
        --append \
        --api-target=service=places.googleapis.com

    อ่านข้อมูลเพิ่มเติมเกี่ยวกับ Google Cloud SDK, การติดตั้ง Cloud SDK และคำสั่งต่อไปนี้

    รหัสคีย์ไม่ใช่สตริงคีย์หรือชื่อที่แสดง หากต้องการค้นหา ให้เรียกใช้ gcloud services api-keys list --project="PROJECT_ID" รหัสคือส่วนสุดท้ายของช่อง name: projects/PROJECT_NUMBER/locations/global/keys/KEY_ID

หากต้องการดูสตริงคีย์ ให้เรียกใช้ gcloud services api-keys get-key-string KEY_ID --project="PROJECT_ID"

ส่งคำขอ API

ส่งคำขอ Places API (ใหม่) เพื่อแสดงผลการตอบกลับ JSON สำหรับการค้นหาข้อความในสตริง "อาหารมังสวิรัติรสจัดในซิดนีย์ ออสเตรเลีย" คุณต้องใส่สตริงตัวอักษรและตัวเลขคละกันของคีย์ API ในทุกคำขอ และใช้ HTTPS สำหรับคำขอที่มีคีย์ API

  1. คลิก API_KEY ในโค้ดด้านล่างเพื่อแทรกสตริงตัวอักษรและตัวเลขคละกันของคีย์

    curl -X POST -d '{
      "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
    -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
    'https://places.googleapis.com/v1/places:searchText'
  2. คลิกไอคอนคัดลอกในตัวอย่างโค้ด เลือกไอคอนคัดลอก เพื่อคัดลอกคำสั่ง curl
  3. วางคำสั่งในหน้าต่างเทอร์มินัลและเรียกใช้คำสั่ง

การตอบกลับเป็นออบเจ็กต์ JSON ในรูปแบบต่อไปนี้

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

ใช้ข้อจำกัดของคีย์ API

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

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

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

สร้างโทเค็น OAuth

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

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

คุณสามารถเรียกใช้ Google Maps API ได้โดยตรงด้วยการส่งคำขอ API ไปยังเซิร์ฟเวอร์ หรือจะใช้ไลบรารีของไคลเอ็นต์เพื่อลดความซับซ้อนของโค้ดก็ได้ Google Maps มีไลบรารีของไคลเอ็นต์สำหรับ Go, Java, Node.js และ Python ดูข้อมูลเพิ่มเติมได้ที่ไลบรารีของไคลเอ็นต์ Places API (ใหม่)

ภาพรวมของ OAuth

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

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

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

ขอบเขต OAuth

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

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

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

หากไม่มีสภาพแวดล้อมที่สร้างโทเค็นและต้องการลองใช้ Places API (ใหม่) ด้วยโทเค็น OAuth ให้ใช้ขั้นตอนในส่วนนี้

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

ใช้ขั้นตอน REST ต่อไปนี้สำหรับการพัฒนาหรือการทดสอบเท่านั้น ไม่ใช่สำหรับการใช้งานจริง

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

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

  1. ติดตั้งและเริ่มต้นใช้งาน gcloud CLI ดูข้อมูลเพิ่มเติมได้ที่ติดตั้ง gcloud CLI

  2. ตรวจสอบสิทธิ์ด้วย gcloud CLI โดยทำดังนี้

    gcloud auth application-default login
  3. ทำตามขั้นตอนการลงชื่อเข้าใช้ให้เสร็จสมบูรณ์เพื่อบันทึกข้อมูลเข้าสู่ระบบในไฟล์ข้อมูลเข้าสู่ระบบในเครื่องที่ ADC ใช้

ดูข้อมูลเพิ่มเติมได้ที่หัวข้อตั้งค่า 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

หากต้องการเรียกใช้ Places API (ใหม่) โดยใช้โทเค็น OAuth ให้ทำตามขั้นตอนต่อไปนี้

  1. ในตัวอย่างโค้ดต่อไปนี้ ให้แทนที่ PROJECT_ID ด้วยรหัสโปรเจ็กต์ Google Cloud

    curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "X-Goog-FieldMask: places.displayName,places.formattedAddress" \
    "https://places.googleapis.com/v1/places:searchText"
  2. หากต้องการคัดลอกคำสั่ง curl ให้คลิกคัดลอกในตัวอย่างโค้ด

  3. วางคำสั่งในหน้าต่างเทอร์มินัล แล้วเรียกใช้

การตอบกลับเป็นออบเจ็กต์ JSON:

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

การแก้ปัญหา

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

ขั้นตอนถัดไป

เมื่อเปิดใช้ Places API (ใหม่) และกำหนดค่าคีย์ API แล้ว โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ Places API (ใหม่) ในหัวข้อเกี่ยวกับ Places API (ใหม่)