ทำการเรียก Google Health API ครั้งแรกโดยใช้ OAuth2 Playground

1. บทนำ

OAuth 2.0 Playground เป็นเครื่องมือบนเว็บที่จะช่วยคุณทดสอบขั้นตอน OAuth 2.0 ของ Google โดยไม่ต้องเขียนโค้ด Codelab นี้จะแสดงวิธีตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google, รับข้อมูลเข้าสู่ระบบ, เริ่มต้นขั้นตอนการให้สิทธิ์ด้วย OAuth 2.0 Playground และโทรหาปลายทาง Google Health API เป็นครั้งแรก

สิ่งที่คุณจะได้เรียนรู้

  • วิธีตั้งค่ารหัสไคลเอ็นต์ภายในคอนโซล Google Cloud
  • วิธีทำตามขั้นตอนการให้สิทธิ์ OAuth 2.0 ของ Google เพื่อรับโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชโดยใช้ OAuth 2.0 Playground
  • วิธีโทรหาปลายทาง Google Health API โดยใช้ OAuth 2.0 Playground

สิ่งที่คุณต้องมี

วิธีตั้งค่าแอป Fitbit บนมือถือ

  1. ค้นหาแอป Fitbit บนมือถือใน Apple App Store หรือ Google Play Store แล้วดาวน์โหลด
  2. เลือกไอคอนแอป
  3. คลิกลงชื่อเข้าใช้ด้วย Google
  4. เลือกบัญชี Google แล้วกดปุ่มต่อไป

2. ตั้งค่าโปรเจ็กต์ Google Cloud

คุณจะใช้คอนโซล Google Cloud เพื่อสร้างรหัสไคลเอ็นต์และเปิดใช้ Google Health API

  1. ลงชื่อเข้าใช้คอนโซล Google Cloud
  2. วิธีสร้างโปรเจ็กต์ใหม่
    1. คลิกเลือกโปรเจ็กต์ จากตัวเลือกโปรเจ็กต์
    2. เลือกโปรเจ็กต์ใหม่ ที่มุมขวาบน
    3. ป้อนชื่อโปรเจ็กต์
    4. ป้อนสถานที่ (เช่น "ไม่มีองค์กร")
    5. คลิกปุ่มสร้าง
    6. เลือกโปรเจ็กต์

เปิดใช้ Google Health API

  1. คลิกไอคอนเมนู เมนู ที่มุมซ้ายบน
  2. เลือก API และบริการ > ไลบรารี
  3. ค้นหา "Google Health API" แล้วเปิดใช้

ตั้งค่าข้อมูลเข้าสู่ระบบ OAuth

หากไม่ได้อยู่ในคอนโซล Google Cloud ให้ไปที่ คอนโซล Google Cloud

  1. คลิกไอคอนเมนู เมนู ที่มุมซ้ายบน
  2. เลือก API และบริการ > ข้อมูลเข้าสู่ระบบ
  3. ที่ด้านบนตรงกลาง ให้เลือก + สร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth
  4. คลิกปุ่มกำหนดค่าหน้าจอขอความยินยอม หากข้อความ "ยังไม่ได้กำหนดค่าแพลตฟอร์มการตรวจสอบสิทธิ์ของ Google" ปรากฏขึ้น ให้คลิกปุ่มเริ่มต้นใช้งาน
  5. ในส่วนที่ 1 ให้ทำดังนี้
    1. ป้อนชื่อแอป
    2. ป้อนอีเมลฝ่ายสนับสนุนผู้ใช้
    3. คลิกปุ่มถัดไป
  6. ในส่วนที่ 2 ให้ทำดังนี้
    1. เลือกภายนอก
    2. คลิกปุ่มถัดไป
  7. ในส่วนที่ 3 ให้ทำดังนี้
    1. ป้อนอีเมลในช่องข้อมูลติดต่อ
    2. คลิกปุ่มถัดไป
  8. ในส่วนที่ 4 ให้ทำดังนี้
    1. คลิกช่องทำเครื่องหมายเพื่อยอมรับนโยบายข้อมูลผู้ใช้ของบริการ API ของ Google
    2. คลิกปุ่มสร้าง
  9. ไปที่ API และบริการ > ข้อมูลเข้าสู่ระบบ แล้วเลือก + สร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth
  10. เลือกประเภทแอปพลิเคชันเป็นเว็บแอปพลิเคชัน
  11. ป้อนชื่อ รหัสไคลเอ็นต์
  12. ปล่อยให้ช่องต้นทางของ JavaScript ที่ได้รับอนุญาต ว่างไว้
  13. ในส่วน URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต ให้คลิก + เพิ่ม URI แล้วเพิ่ม URI ต่อไปนี้:
    • https://www.google.com
    • https://developers.google.com/oauthplayground
  14. คลิกปุ่มสร้าง
  15. คอนโซล Google จะแสดงข้อความว่าสร้างรหัสไคลเอ็นต์แล้ว ให้คลิกลิงก์ดาวน์โหลด JSON เพื่อดาวน์โหลดรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ หรือเขียนค่าไว้ คุณจะกู้คืนรหัสลับของไคลเอ็นต์ในภายหลังไม่ได้
  16. คลิกตกลง ระบบจะนำคุณกลับไปที่หน้า "รหัสไคลเอ็นต์ OAuth 2.0"
  17. ระบบจะเพิ่มรหัสไคลเอ็นต์ลงในโปรเจ็กต์ คลิก URL รหัสไคลเอ็นต์เพื่อดูรายละเอียด

เพิ่มผู้ใช้ทดสอบ

  1. เลือกกลุ่มเป้าหมาย ในแผงด้านซ้าย คุณควรเห็น "สถานะการเผยแพร่" ตั้งค่าเป็นการทดสอบ และ "ประเภทผู้ใช้" ตั้งค่าเป็นภายนอก
  2. ในส่วน "ผู้ใช้ทดสอบ" ให้คลิกปุ่ม + เพิ่มผู้ใช้ ป้อนอีเมลของผู้ใช้ที่ต้องการดึงข้อมูล
  3. คลิกปุ่มบันทึก

เพิ่มขอบเขตลงในรหัสไคลเอ็นต์

  1. เลือกการเข้าถึงข้อมูล ในแผงด้านซ้าย
  2. คลิกปุ่มเพิ่มหรือนำขอบเขตออก
  3. ค้นหา "Google Health API" ในคอลัมน์ API สำหรับ Codelab นี้ เราจะใช้ขอบเขต .../auth/googlehealth.activity_and_fitness.readonly
  4. หลังจากเลือกขอบเขตแล้ว ให้กดปุ่มอัปเดต เพื่อกลับไปที่หน้าการเข้าถึงข้อมูล
  5. คลิกปุ่มบันทึก

คุณตั้งค่ารหัสไคลเอ็นต์เสร็จแล้ว

3. เพิ่มข้อมูลลงในแอป Fitbit บนมือถือ

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

  1. เปิดแอป Fitbit บนมือถือในอุปกรณ์ ลงชื่อเข้าใช้บัญชี Fitbit หากจำเป็น
  2. แตะปุ่ม + ที่มุมขวาล่างของหน้าจอ
  3. ในส่วน "บันทึกด้วยตนเอง" ให้แตะกิจกรรม
  4. ค้นหาประเภทการออกกำลังกายเดิน แล้วเลือก
  5. ป้อนเวลาเริ่มต้น ของวันนี้
  6. เปลี่ยนระยะเวลาเป็น 15 นาที
  7. ปล่อยให้ระยะทางเป็น 1.0 ไมล์
  8. แตะเพิ่ม
  9. ซิงค์แอปบนมือถือกับเซิร์ฟเวอร์ Fitbit โดยกดหน้าจอค้างไว้แล้วเลื่อนลง เมื่อปล่อยนิ้ว คุณจะเห็นแอปบนมือถือซิงค์
  10. ในส่วน "กิจกรรม" คุณควรเห็นรายการเดินที่บันทึกด้วยตนเองภาพหน้าจอแสดงกิจกรรมการเดิน

4. ให้สิทธิ์ใน OAuth 2.0 Playground

ไปที่ OAuth 2.0 Playground

Google Health API กำหนดให้คุณใช้ข้อมูลเข้าสู่ระบบ OAuth ของคุณเองกับ Playground

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

อินเทอร์เฟซของ Playground แบ่งออกเป็น 3 ขั้นตอนหลักที่เราจะทำตาม

  1. เลือกและให้สิทธิ์ API
  2. เปลี่ยนรหัสการให้สิทธิ์เป็นโทเค็น
  3. ส่งคำขอไปยัง API

เลือกและให้สิทธิ์ API

ในส่วนนี้ คุณจะเลือกขอบเขต API ที่ต้องการขอ

  1. ในขั้นตอนที่ 1 ให้ค้นหา Google Health API v4 ในรายการ API แล้วขยายรายการ
  2. เลือก https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly หากขอบเขตที่ต้องการไม่แสดงในรายการ คุณสามารถป้อนขอบเขตด้วยตนเองในช่อง "ป้อนขอบเขตของคุณเอง"
  3. คลิกให้สิทธิ์ API
  4. ระบบจะส่งคำขอไปยังปลายทางการให้สิทธิ์ OAuth 2.0 ของ Google โดยจะรวมขอบเขตที่เลือกไว้ในคำขอ จากนั้นระบบจะเปลี่ยนเส้นทางคุณไปยังหน้าจอขอความยินยอมของบัญชี Google
  5. ลงชื่อเข้าใช้ด้วยบัญชีผู้ใช้ทดสอบที่คุณกำหนดค่าไว้ในส่วนตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google (หากยังไม่ได้ลงชื่อเข้าใช้)
  6. ตรวจสอบสิทธิ์ที่ขอ แล้วคลิกต่อไป เพื่อให้สิทธิ์เข้าถึง

เมื่อคุณให้คำยินยอม Google จะเปลี่ยนเส้นทางคุณกลับไปที่ Playground และให้รหัสการให้สิทธิ์ แก่เครื่องมือ ซึ่งจะใช้ในขั้นตอนถัดไป

แผงคำขอ / การตอบกลับ ทางด้านขวาจะแสดงขั้นตอนการเปลี่ยนเส้นทาง HTTP ทั้งหมด

การตอบกลับจากคำขอการให้สิทธิ์เริ่มต้นคือการเปลี่ยนเส้นทาง 302 Found

HTTP/1.1 302 Found
Location: https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&prompt=consent&response_type=code&client_id=your_client_id&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgooglehealth.activity_and_fitness.readonly&access_type=offline

คำขอที่เปลี่ยนเส้นทางกลับไปยัง Playground จะมีรหัสการให้สิทธิ์ดังนี้

GET /oauthplayground/?iss=https://accounts.google.com&code=authorization_code&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly HTTP/1.1
Host: developers.google.com

รหัสการให้สิทธิ์คือค่าที่เป็นตัวอักษรและตัวเลขซึ่งแสดงด้วย authorization_code ระหว่าง code= กับ &scope ใน URL คำขอ GET ในตัวอย่างนี้ ค่าจะมีลักษณะคล้ายกับ 4/0AbPOj...

เปลี่ยนรหัสการให้สิทธิ์เป็นโทเค็น

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

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

  1. คลิกปุ่มเปลี่ยนรหัสการให้สิทธิ์เป็นโทเค็น ในขั้นตอนที่ 2
  2. access_token และ refresh_token จะปรากฏในแผงคำขอ/การตอบกลับ ทางด้านขวา

คุณควรเห็นการตอบกลับที่มีลักษณะคล้ายกับตัวอย่างต่อไปนี้

{
  "access_token": "ya29.a0AFH6S....",
  "refresh_token_expires_in": 604799,
  "expires_in": 3599,
  "token_type": "Bearer",
  "scope": "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly",
  "refresh_token": "1/og..."
}

เกี่ยวกับโทเค็นการรีเฟรช

เมื่อคุณเปลี่ยนรหัสการให้สิทธิ์ การตอบกลับอาจมี refresh_token นอกเหนือจาก access_token access_token มีอายุการใช้งานสั้น (โดยปกติคือ 1 ชั่วโมง) เมื่อ access_token หมดอายุ คุณต้องใช้ refresh_token เพื่อรับ access_token ใหม่โดยไม่ต้องให้ผู้ใช้ลงชื่อเข้าใช้อีกครั้งหรือให้คำยินยอมอีก ซึ่งทำได้เนื่องจากเราใส่ access_type=offline ในคำขอการให้สิทธิ์

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

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

5. ส่งคำขอไปยัง API

ตอนนี้คุณสามารถใช้โทเค็นเพื่อการเข้าถึงเพื่อส่งคำขอไปยัง Google Health API ได้แล้ว ใน ขั้นตอนที่ 3 ใน Playground ให้กำหนดค่าคำขอ HTTP โดยระบุ URI คำขอ, เมธอด HTTP, ส่วนหัว และเนื้อหาคำขอ

  1. ตั้งค่าเมธอด HTTP เป็น GET
  2. ตั้งค่า URI คำขอ เป็น https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints
  3. คลิกส่งคำขอ

การตอบกลับควรมีลักษณะคล้ายกับตัวอย่างต่อไปนี้

{
  "dataPoints": [
    {
      "name": "users/2515055256096816351/dataTypes/exercise/dataPoints/8896720705097069096",
      "dataSource": {
        "recordingMethod": "MANUAL",
        "platform": "FITBIT"
      },
      "exercise": {
        "interval": {
          "startTime": "2026-02-23T13:10:00Z",
          "startUtcOffset": "-18000s",
          "endTime": "2026-02-23T13:25:00Z",
          "endUtcOffset": "-18000s"
        },
        "exerciseType": "WALKING",
        "metricsSummary": {
          "caloriesKcal": 16,
          "distanceMillimiters": 1609344,
          "steps": "2038",
          "averagePaceSecondsPerMeter": 0.55923407301360051,
          "activeZoneMinutes": "0"
        },
        "exerciseMetadata": {},
        "displayName": "Walk",
        "activeDuration": "900s",
        "exerciseEvents": [
          {
            "eventTime": "2026-02-23T13:10:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "START"
          },
          {
            "eventTime": "2026-02-23T13:25:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "STOP"
          }
        ],
        "updateTime": "2026-02-24T01:19:22.450466Z"
      }
    },
    {
      "name": "users/2515055256096816351/dataTypes/exercise/dataPoints/5870930690409355408",
      "dataSource": {
        "recordingMethod": "MANUAL",
        "platform": "FITBIT"
      },
      "exercise": {
        "interval": {
          "startTime": "2026-02-23T06:00:00Z",
          "startUtcOffset": "-18000s",
          "endTime": "2026-02-23T06:15:00Z",
          "endUtcOffset": "-18000s"
        },
        "exerciseType": "WALKING",
        "metricsSummary": {
          "caloriesKcal": 17,
          "distanceMillimiters": 1609344,
          "steps": "2038",
          "averagePaceSecondsPerMeter": 0.55923407301360051,
          "averageHeartRateBeatsPerMinute": "81",
          "activeZoneMinutes": "0",
          "heartRateZoneDurations": {
            "lightTime": "900s"
          }
        },
        "exerciseMetadata": {},
        "displayName": "Walk",
        "activeDuration": "900s",
        "exerciseEvents": [
          {
            "eventTime": "2026-02-23T06:00:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "START"
          },
          {
            "eventTime": "2026-02-23T06:15:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "STOP"
          }
        ],
        "updateTime": "2026-02-23T08:29:39.480437Z"
      }
    }
  ],
  "nextPageToken": ""
}

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

https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"

คลิกส่งคำขอ อีกครั้งเพื่อดูผลลัพธ์ที่กรองแล้ว

6. ขอแสดงความยินดี

ยินดีด้วย

คุณทำ Codelab ขั้นพื้นฐานเสร็จแล้ว และได้เรียนรู้วิธีใช้ OAuth2 Playground เพื่อทดสอบการให้สิทธิ์ OAuth 2.0 และโทรหาปลายทาง Google Health API

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