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
สิ่งที่คุณต้องมี
- บัญชี Google
- แอป Fitbit บนมือถือ
- OAuth 2.0 Playground
วิธีตั้งค่าแอป Fitbit บนมือถือ
- ค้นหาแอป Fitbit บนมือถือใน Apple App Store หรือ Google Play Store แล้วดาวน์โหลด
- เลือกไอคอนแอป
- คลิกลงชื่อเข้าใช้ด้วย Google
- เลือกบัญชี Google แล้วกดปุ่มต่อไป
2. ตั้งค่าโปรเจ็กต์ Google Cloud
คุณจะใช้คอนโซล Google Cloud เพื่อสร้างรหัสไคลเอ็นต์และเปิดใช้ Google Health API
- ลงชื่อเข้าใช้คอนโซล Google Cloud
- วิธีสร้างโปรเจ็กต์ใหม่
- คลิกเลือกโปรเจ็กต์ จากตัวเลือกโปรเจ็กต์
- เลือกโปรเจ็กต์ใหม่ ที่มุมขวาบน
- ป้อนชื่อโปรเจ็กต์
- ป้อนสถานที่ (เช่น "ไม่มีองค์กร")
- คลิกปุ่มสร้าง
- เลือกโปรเจ็กต์
เปิดใช้ Google Health API
- คลิกไอคอนเมนู
ที่มุมซ้ายบน - เลือก API และบริการ > ไลบรารี
- ค้นหา "Google Health API" แล้วเปิดใช้
ตั้งค่าข้อมูลเข้าสู่ระบบ OAuth
หากไม่ได้อยู่ในคอนโซล Google Cloud ให้ไปที่ คอนโซล Google Cloud
- คลิกไอคอนเมนู
ที่มุมซ้ายบน - เลือก API และบริการ > ข้อมูลเข้าสู่ระบบ
- ที่ด้านบนตรงกลาง ให้เลือก + สร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth
- คลิกปุ่มกำหนดค่าหน้าจอขอความยินยอม หากข้อความ "ยังไม่ได้กำหนดค่าแพลตฟอร์มการตรวจสอบสิทธิ์ของ Google" ปรากฏขึ้น ให้คลิกปุ่มเริ่มต้นใช้งาน
- ในส่วนที่ 1 ให้ทำดังนี้
- ป้อนชื่อแอป
- ป้อนอีเมลฝ่ายสนับสนุนผู้ใช้
- คลิกปุ่มถัดไป
- ในส่วนที่ 2 ให้ทำดังนี้
- เลือกภายนอก
- คลิกปุ่มถัดไป
- ในส่วนที่ 3 ให้ทำดังนี้
- ป้อนอีเมลในช่องข้อมูลติดต่อ
- คลิกปุ่มถัดไป
- ในส่วนที่ 4 ให้ทำดังนี้
- คลิกช่องทำเครื่องหมายเพื่อยอมรับนโยบายข้อมูลผู้ใช้ของบริการ API ของ Google
- คลิกปุ่มสร้าง
- ไปที่ API และบริการ > ข้อมูลเข้าสู่ระบบ แล้วเลือก + สร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth
- เลือกประเภทแอปพลิเคชันเป็นเว็บแอปพลิเคชัน
- ป้อนชื่อ รหัสไคลเอ็นต์
- ปล่อยให้ช่องต้นทางของ JavaScript ที่ได้รับอนุญาต ว่างไว้
- ในส่วน URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต ให้คลิก + เพิ่ม URI แล้วเพิ่ม URI ต่อไปนี้:
https://www.google.comhttps://developers.google.com/oauthplayground
- คลิกปุ่มสร้าง
- คอนโซล Google จะแสดงข้อความว่าสร้างรหัสไคลเอ็นต์แล้ว ให้คลิกลิงก์ดาวน์โหลด JSON เพื่อดาวน์โหลดรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ หรือเขียนค่าไว้ คุณจะกู้คืนรหัสลับของไคลเอ็นต์ในภายหลังไม่ได้
- คลิกตกลง ระบบจะนำคุณกลับไปที่หน้า "รหัสไคลเอ็นต์ OAuth 2.0"
- ระบบจะเพิ่มรหัสไคลเอ็นต์ลงในโปรเจ็กต์ คลิก URL รหัสไคลเอ็นต์เพื่อดูรายละเอียด
เพิ่มผู้ใช้ทดสอบ
- เลือกกลุ่มเป้าหมาย ในแผงด้านซ้าย คุณควรเห็น "สถานะการเผยแพร่" ตั้งค่าเป็นการทดสอบ และ "ประเภทผู้ใช้" ตั้งค่าเป็นภายนอก
- ในส่วน "ผู้ใช้ทดสอบ" ให้คลิกปุ่ม + เพิ่มผู้ใช้ ป้อนอีเมลของผู้ใช้ที่ต้องการดึงข้อมูล
- คลิกปุ่มบันทึก
เพิ่มขอบเขตลงในรหัสไคลเอ็นต์
- เลือกการเข้าถึงข้อมูล ในแผงด้านซ้าย
- คลิกปุ่มเพิ่มหรือนำขอบเขตออก
- ค้นหา "Google Health API" ในคอลัมน์ API สำหรับ Codelab นี้ เราจะใช้ขอบเขต
.../auth/googlehealth.activity_and_fitness.readonly - หลังจากเลือกขอบเขตแล้ว ให้กดปุ่มอัปเดต เพื่อกลับไปที่หน้าการเข้าถึงข้อมูล
- คลิกปุ่มบันทึก
คุณตั้งค่ารหัสไคลเอ็นต์เสร็จแล้ว
3. เพิ่มข้อมูลลงในแอป Fitbit บนมือถือ
สำหรับผู้ใช้ใหม่ของ Fitbit คุณอาจไม่มีข้อมูลในบัญชี Fitbit ที่จะค้นหา เราจะเพิ่มบันทึกการออกกำลังกายด้วยตนเองซึ่งเราจะค้นหาผ่านปลายทางใดปลายทางหนึ่ง หากต้องการบันทึกการออกกำลังกายด้วยตนเอง ให้ทำตามขั้นตอนต่อไปนี้
- เปิดแอป Fitbit บนมือถือในอุปกรณ์ ลงชื่อเข้าใช้บัญชี Fitbit หากจำเป็น
- แตะปุ่ม + ที่มุมขวาล่างของหน้าจอ
- ในส่วน "บันทึกด้วยตนเอง" ให้แตะกิจกรรม
- ค้นหาประเภทการออกกำลังกายเดิน แล้วเลือก
- ป้อนเวลาเริ่มต้น ของวันนี้
- เปลี่ยนระยะเวลาเป็น 15 นาที
- ปล่อยให้ระยะทางเป็น 1.0 ไมล์
- แตะเพิ่ม
- ซิงค์แอปบนมือถือกับเซิร์ฟเวอร์ Fitbit โดยกดหน้าจอค้างไว้แล้วเลื่อนลง เมื่อปล่อยนิ้ว คุณจะเห็นแอปบนมือถือซิงค์
- ในส่วน "กิจกรรม" คุณควรเห็นรายการเดินที่บันทึกด้วยตนเอง

4. ให้สิทธิ์ใน OAuth 2.0 Playground
ไปที่ OAuth 2.0 Playground
Google Health API กำหนดให้คุณใช้ข้อมูลเข้าสู่ระบบ OAuth ของคุณเองกับ Playground
- คลิกไอคอนรูปเฟืองการกำหนดค่า OAuth 2.0 ที่ด้านขวาบน
- เลือกใช้ข้อมูลเข้าสู่ระบบ OAuth ของคุณเอง
- ป้อนรหัสไคลเอ็นต์ OAuth และรหัสลับไคลเอ็นต์ OAuth ที่คุณได้รับระหว่างการตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์ Google
อินเทอร์เฟซของ Playground แบ่งออกเป็น 3 ขั้นตอนหลักที่เราจะทำตาม
- เลือกและให้สิทธิ์ API
- เปลี่ยนรหัสการให้สิทธิ์เป็นโทเค็น
- ส่งคำขอไปยัง API
เลือกและให้สิทธิ์ API
ในส่วนนี้ คุณจะเลือกขอบเขต API ที่ต้องการขอ
- ในขั้นตอนที่ 1 ให้ค้นหา Google Health API v4 ในรายการ API แล้วขยายรายการ
- เลือก
https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonlyหากขอบเขตที่ต้องการไม่แสดงในรายการ คุณสามารถป้อนขอบเขตด้วยตนเองในช่อง "ป้อนขอบเขตของคุณเอง" - คลิกให้สิทธิ์ API
- ระบบจะส่งคำขอไปยังปลายทางการให้สิทธิ์ OAuth 2.0 ของ Google โดยจะรวมขอบเขตที่เลือกไว้ในคำขอ จากนั้นระบบจะเปลี่ยนเส้นทางคุณไปยังหน้าจอขอความยินยอมของบัญชี Google
- ลงชื่อเข้าใช้ด้วยบัญชีผู้ใช้ทดสอบที่คุณกำหนดค่าไว้ในส่วนตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google (หากยังไม่ได้ลงชื่อเข้าใช้)
- ตรวจสอบสิทธิ์ที่ขอ แล้วคลิกต่อไป เพื่อให้สิทธิ์เข้าถึง
เมื่อคุณให้คำยินยอม 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 จะป้อนข้อมูลในช่องรหัสการให้สิทธิ์โดยอัตโนมัติ หากต้องการเปลี่ยนรหัสเป็นโทเค็น ให้ทำดังนี้
- คลิกปุ่มเปลี่ยนรหัสการให้สิทธิ์เป็นโทเค็น ในขั้นตอนที่ 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, ส่วนหัว และเนื้อหาคำขอ
- ตั้งค่าเมธอด HTTP เป็น GET
- ตั้งค่า URI คำขอ เป็น
https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints - คลิกส่งคำขอ
การตอบกลับควรมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
{
"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 สำหรับแอปพลิเคชันเว็บเซิร์ฟเวอร์