1. บทนำ
OAuth 2.0 Playground เป็นเครื่องมือบนเว็บที่จะช่วยให้คุณทดสอบขั้นตอนของ Google OAuth 2.0 ได้โดยไม่ต้องเขียนโค้ด Codelab นี้จะแสดงวิธีตั้งค่าโปรเจ็กต์ Google Cloud, รับข้อมูลเข้าสู่ระบบ, เริ่มต้นขั้นตอนการให้สิทธิ์ด้วย OAuth 2.0 Playground และทำการเรียกครั้งแรกไปยังปลายทาง Google Health API รายการใดรายการหนึ่ง
สิ่งที่คุณจะได้เรียนรู้
- วิธีตั้งค่ารหัสไคลเอ็นต์ภายในคอนโซล Google Cloud
- วิธีดำเนินการตามขั้นตอนการให้สิทธิ์ Google OAuth 2.0 เพื่อรับโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชโดยใช้ 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 Console เพื่อสร้างรหัสไคลเอ็นต์และเปิดใช้ Google Health API
- ลงชื่อเข้าใช้คอนโซล Google Cloud
- วิธีสร้างโปรเจ็กต์ใหม่
- คลิกเลือกโปรเจ็กต์จากเครื่องมือเลือกโปรเจ็กต์
- เลือกโปรเจ็กต์ใหม่ที่มุมขวาบน
- ป้อนชื่อโปรเจ็กต์
- ป้อนสถานที่ตั้ง (เช่น "ไม่มีองค์กร")
- คลิกที่ปุ่มสร้าง
- เลือกโปรเจ็กต์
เปิดใช้ Google Health API
- คลิกไอคอนเมนูที่มุมซ้ายบน

- เลือก API และบริการ > ไลบรารี
- ค้นหา "Google Health API" แล้วเปิดใช้
ตั้งค่าข้อมูลเข้าสู่ระบบ OAuth
หากไม่ได้อยู่ในคอนโซล Google Cloud ให้ไปที่คอนโซล Google Cloud
- คลิกไอคอนเมนูที่มุมซ้ายบน

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