ตั้งค่า Google Cloud และ OAuth

เราให้สิทธิ์เข้าถึง Google Health API ผ่าน Google Cloud คุณจะต้องมีโปรเจ็กต์ Google Cloud เพื่อเปิดใช้ API และให้สิทธิ์บัญชี Google

ไม่ว่าคุณจะเป็นนักพัฒนาแอป Fitbit API ที่มีอยู่แล้วหรือเพิ่งเริ่มใช้ Google Health API คุณจะต้องทำตามขั้นตอนนี้ให้เสร็จสมบูรณ์เพื่อเรียกใช้ API ได้

สร้างโปรเจ็กต์และไคลเอ็นต์ OAuth

ใช้ปุ่มเปิดใช้ API และรับรหัสไคลเอ็นต์ OAuth 2.0 เพื่อเปิดใช้ Google Health API และรับรหัสไคลเอ็นต์ OAuth 2.0 โดยทำดังนี้

  1. หากคุณมีโปรเจ็กต์ Google Cloud ที่ต้องการใช้กับ Google Health API โปรดตรวจสอบว่าคุณได้เข้าสู่ระบบบัญชีผู้ดูแลระบบของโปรเจ็กต์นั้นแล้ว จากนั้นเลือกโปรเจ็กต์ที่มีอยู่จากรายการโปรเจ็กต์ที่พร้อมใช้งานหลังจากคลิกปุ่ม หรือสร้างโปรเจ็กต์ใหม่
  2. เลือกเว็บเซิร์ฟเวอร์ เมื่อระบบถามว่า "คุณเรียกใช้จากที่ใด"
  3. ป้อน https://www.google.com เป็นค่าสำหรับURI เปลี่ยนเส้นทางที่ได้รับอนุญาต คุณต้องระบุ URI เปลี่ยนเส้นทางเพื่อรับรหัสการให้สิทธิ์โดยใช้ OAuth 2.0
  4. เมื่อตั้งค่าเสร็จแล้ว ให้คัดลอกค่ารหัสไคลเอ็นต์และข้อมูลลับของไคลเอ็นต์ OAuth 2.0 แล้วดาวน์โหลดข้อมูลเข้าสู่ระบบ JSON ลงในเครื่องของคุณ
เปิดใช้ API และรับรหัสไคลเอ็นต์ OAuth 2.0

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

  1. เปิดใช้ Google Health API ในหน้า การเปิดใช้ API
  2. รับรหัสไคลเอ็นต์ OAuth 2.0 ในหน้า ข้อมูลเข้าสู่ระบบ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่า OAuth 2.0 โดยใช้คอนโซล Google ได้ที่ การใช้ OAuth 2.0 เพื่อเข้าถึง Google API

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

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

อัปเดตรายชื่อผู้ใช้ทดสอบในหน้า กลุ่มเป้าหมาย โดยทำดังนี้

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

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

เพิ่มขอบเขต

คุณต้องระบุขอบเขตที่ไคลเอ็นต์ได้รับอนุญาตให้เรียกใช้ในหน้า การเข้าถึงข้อมูล โดยทำดังนี้

  1. คลิกเพิ่มหรือนำขอบเขตออก ในหน้านี้
  2. ในคอลัมน์ API ให้ค้นหา "Google Health API" เลือกขอบเขตที่ต้องการสำหรับแอปพลิเคชัน
  3. หลังจากเลือกขอบเขตที่ต้องการทั้งหมดแล้ว ให้คลิกอัปเดต เพื่อกลับไปที่หน้าการเข้าถึงข้อมูล
  4. คลิกบันทึก

คุณตั้งค่ารหัสไคลเอ็นต์เสร็จแล้ว และควรจะเรียกใช้ Google Health API ได้แล้ว

อัปเดตขอบเขต

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

หากต้องการเพิ่มหรือเปลี่ยนขอบเขตโดยใช้พารามิเตอร์ prompt=consent ให้ทำตามขั้นตอนต่อไปนี้

  1. ระบุรายการ ขอบเขตทั้งหมดที่แอปพลิเคชัน ต้องการ ซึ่งควรรวมทั้งขอบเขตที่มีอยู่และขอบเขตใหม่ที่ต้องการเพิ่ม

  2. แก้ไขพารามิเตอร์ `scope` ใน URL การให้สิทธิ์เพื่อรวมรายการค่าขอบเขตที่อัปเดตแล้วโดยคั่นด้วยช่องว่าง

  3. เพิ่ม prompt=consent ลงในพารามิเตอร์ URI การตรวจสอบสิทธิ์ ซึ่งจะบังคับให้เซิร์ฟเวอร์การให้สิทธิ์แจ้งให้ผู้ใช้ให้ความยินยอมก่อนที่จะแสดงข้อมูลแก่ไคลเอ็นต์

    ตัวอย่างต่อไปนี้แสดงคำขอ HTTPS GET ไปยังปลายทางการให้สิทธิ์ OAuth 2.0 ของ Google เพื่อขอขอบเขตหลายรายการโดยเพิ่ม prompt=consent ไว้

    https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=redirect-uri&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly%20https://www.googleapis.com/auth/googlehealth.sleep.readonly&prompt=consent
  4. เมื่อผู้ใช้คลิกลิงก์ที่อัปเดตแล้ว ระบบจะแสดงหน้าคำยินยอมที่แสดงขอบเขตที่ขอทั้งหมด เมื่อผู้ใช้คลิก "ดำเนินการต่อ" หรือ "อนุญาต" คุณจะได้รับรหัสการให้สิทธิ์ใหม่ที่สามารถแลกเป็นโทเค็นที่ครอบคลุมขอบเขตทั้งหมด

    รวม prompt=consent เฉพาะเมื่อจำเป็นเท่านั้น เช่น เมื่อคุณต้องการรับโทเค็นการรีเฟรชใหม่หรือเมื่อขอบเขตที่ขอมีการเปลี่ยนแปลง

ไลบรารีไคลเอ็นต์ OAuth2

ดูรายการไลบรารีไคลเอ็นต์ OAuth2 ที่พร้อมใช้งานซึ่งใช้เพื่อผสานรวมกับเฟรมเวิร์กยอดนิยม ได้ที่ การใช้ OAuth 2.0 เพื่อเข้าถึง Google API

โทเค็นการรีเฟรช

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

หากต้องการแลกโทเค็นการรีเฟรชเป็นโทเค็นเพื่อการเข้าถึง ให้เรียกใช้ HTTPS POST ไปยังปลายทางโทเค็น OAuth 2.0 ของ Google ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่างคำขอและการตอบกลับ

ส่งคำขอ

curl -L -X POST 'https://oauth2.googleapis.com/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=client-id&client_secret=client-secret&refresh_token=refresh-token&grant_type=refresh_token'

การตอบกลับ

{
  "access_token": "access-token",
  "expires_in": 3599,
  "scope": "scope-list",
  "token_type": "Bearer",
  "refresh_token": "refresh-token",
  "refresh_token_expires_in": 112154
}

ลักษณะการทำงานของโทเค็นระหว่างการทดสอบ

โปรดทราบลักษณะการทำงานของโทเค็นการรีเฟรชตามสถานะการเผยแพร่ของโปรเจ็กต์ Google Cloud ดังนี้

  • โหมดการทดสอบ: หากกำหนดค่าหน้าจอคำยินยอม OAuth ด้วยสถานะการเผยแพร่ "การทดสอบ" โทเค็นการรีเฟรชที่ออกให้จะเป็นแบบอิงตามเวลาและหมดอายุหลังจากผ่านไป 7 วัน ในช่วงนี้ คุณจะได้รับโทเค็นการรีเฟรชรายการเดียวที่ยังคงใช้ได้และใช้เพื่อรับโทเค็นเพื่อการเข้าถึงใหม่ได้จนกว่าจะถึงวันที่หมดอายุ
  • โหมดเผยแพร่: เมื่อย้ายแอปไปอยู่ในสถานะ "ใช้งานจริง" โดยทั่วไปแล้วโทเค็นการรีเฟรชจะไม่หมดอายุ เว้นแต่จะถูกเพิกถอนหรือไม่ได้ใช้งานเป็นระยะเวลานาน (โดยปกติคือ 6 เดือน)

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