Developerสามารถใช้ SDM API เพื่อดูและจัดการอุปกรณ์ Google Nest ในนามของ userได้ SDM API จะตรวจสอบว่า user จัดการอุปกรณ์ที่เข้าถึง user ให้ความยินยอมในการdeveloper อ่านหรือเขียนลักษณะของอุปกรณ์แต่ละเครื่อง และdeveloper อยู่ในรายการที่อนุญาตพิเศษสำหรับการเข้าถึงลักษณะแต่ละรายการ
หากต้องการใช้ SDM API สำหรับการจัดการอุปกรณ์developer ต้องได้รับอนุญาตจาก userก่อน
ดูคำแนะนำแบบทีละขั้นเกี่ยวกับกระบวนการให้สิทธิ์ได้ที่หน้าให้สิทธิ์บัญชีใน Device Access คู่มือเริ่มใช้งานฉบับย่อ
หากต้องการความช่วยเหลือในการแก้ปัญหาข้อผิดพลาดในการให้สิทธิ์ โปรดดูข้อผิดพลาดในการให้สิทธิ์
ขั้นตอน OAuth
SDM API ใช้ขั้นตอน OAuth ของ Google แบบ 3 ทางสําหรับuser การให้สิทธิ์ ดังนี้
- เมื่อ a user ต้องการให้สิทธิ์ a developer เพื่อจัดการอุปกรณ์ Nest developer จะส่งuser ไปยัง PCM ซึ่ง userจะเข้าสู่ระบบบัญชี Google
- user เลือกสิทธิ์ที่จะให้ developer ใน PCM
- user ให้ความยินยอมผ่าน OAuth โดยให้รหัสการให้สิทธิ์แก่ developer
- developer ใช้รหัสการให้สิทธิ์เพื่อดึงข้อมูลโทเค็นการเข้าถึง
- developer ใช้โทเค็นการเข้าถึงกับการเรียกใช้ SDM API เพื่อการจัดการอุปกรณ์
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google OAuth และวิธีตั้งค่าได้ที่หัวข้อการใช้ OAuth 2.0 เพื่อเข้าถึง Google API
เครื่องมือจัดการการเชื่อมต่อกับพาร์ทเนอร์ (PCM)
PCM มาจาก SDM API ซึ่งเป็นมุมมองที่แสดงโครงสร้าง อุปกรณ์ และตัวเลือกการเข้าถึงทั้งหมดที่user สามารถให้สิทธิ์แก่ developerได้ user จะเลือกว่าจะให้สิทธิ์เข้าถึงสิ่งใดในระหว่างขั้นตอนการให้สิทธิ์ และยังคงเป็นผู้ควบคุมสิทธิ์เข้าถึงนั้น
ตัวเลือกที่เลือกไว้ในแมป PCM กับกลุ่มลักษณะ ซึ่งเป็นคอลเล็กชันของลักษณะที่ developer จะได้รับสิทธิ์เข้าถึง กลุ่มลักษณะบางกลุ่มจะลิงก์เข้าด้วยกันโดยขึ้นอยู่กับประเภทการผสานรวมที่developer เสนอให้ userและ userต้องให้สิทธิ์แก่กลุ่มลักษณะที่ลิงก์ไว้เพื่อเปิดใช้การผสานรวมดังกล่าว ไม่เช่นนั้น ผู้ใช้ก็สามารถให้สิทธิ์แก่กลุ่มลักษณะหนึ่งที่ไม่ได้ลิงก์ได้ตามต้องการ
เปิดใช้ PCM
หากต้องการเปิดใช้มุมมอง PCM สำหรับ userให้แทนที่ปลายทาง OAuth 2.0 ของ Google API มาตรฐานด้วยปลายทาง OAuth ใหม่นี้สำหรับคำขอการให้สิทธิ์:
https://nestservices.google.com/partnerconnections/project-id/auth
ใช้พารามิเตอร์เหล่านี้ใน URL
พารามิเตอร์ | คำอธิบาย |
---|---|
redirect_uri |
URI ที่จะกำหนด user หลังจากการให้สิทธิ์เรียบร้อยแล้ว |
client_id |
รหัสไคลเอ็นต์ OAuth 2.0 จากโปรเจ็กต์ Google Cloud ตรวจสอบว่ารหัสนี้เชื่อมโยงกับ Project รหัสของคุณ โปรดทราบว่ารหัสไคลเอ็นต์ OAuth ต้องถูกต้องและไม่ซ้ำกันสำหรับ projectแต่ละรายการ และไม่สามารถแชร์กับ projectอื่นๆ ได้ |
access_type |
ค่าที่จะใช้: offline |
prompt |
ค่าที่จะใช้: consent |
response_type |
ค่าที่จะใช้: code ระบบจะส่งรหัสการให้สิทธิ์กลับ |
scope |
ค่าที่จะใช้: https://www.googleapis.com/auth/sdm.service
ขอบเขต SDM API |
state |
ไม่บังคับ ค่าทึบที่ใช้โดย developer ไคลเอ็นต์เพื่อรักษาสถานะระหว่างคำขอและการเรียกกลับ |
ตัวอย่าง URL ของ PCM
https://nestservices.google.com/partnerconnections/
2f6989ca-c756-4625-8cdc-d5b1edfb2dcd/auth?
redirect_uri=https://www.example.com/api/link/M258KP8OWYZDVQ&
client_id=418235700063-sdkiav89orn5r1nvrcr5t210qqjimq8l.apps.googleusercontent.com&
access_type=offline&
prompt=consent&
response_type=code&
scope=https://www.googleapis.com/auth/sdm.service
หลังจาก user ให้สิทธิ์แล้ว ระบบจะแสดงรหัสการให้สิทธิ์เป็นพารามิเตอร์ code
ใน URI การเปลี่ยนเส้นทาง ใช้รหัสนี้เพื่อรับ
โทเค็นเพื่อการเข้าถึง
เพิ่ม PCM ลงในแอป
ในแอป ให้เพิ่มมุมมอง PCM โดยใช้ URL นี้
https://nestservices.google.com/partnerconnections
เมื่อ user เข้าสู่ระบบแล้ว หน้านี้จะแสดงDevice Access developerที่ลิงก์ไว้ทั้งหมด รวมถึงรายการโครงสร้างและอุปกรณ์ทั้งหมดพร้อมปุ่มเปิด/ปิดสําหรับการให้สิทธิ์และการเพิกถอนสิทธิ์ นอกจากนี้ user ยังยกเลิกการเชื่อมต่อพาร์ทเนอร์ทีละรายได้จากหน้านี้
แอปที่ไม่ได้รับการยืนยัน
SDM API ใช้ขอบเขตที่จำกัด ซึ่งหมายความว่าแอปที่ใช้ขอบเขตนี้ในระหว่างการให้สิทธิ์จะเป็น "ไม่ได้รับการยืนยัน" เว้นแต่การตรวจสอบ OAuth API จะเสร็จสมบูรณ์ เมื่อใช้ Device Access เพื่อการใช้งานส่วนตัว คุณไม่จำเป็นต้องยืนยัน OAuth API
คุณอาจเห็นหน้าจอ "Google ยังไม่ได้ยืนยันแอปนี้" ในระหว่างกระบวนการให้สิทธิ์ ซึ่งจะปรากฏขึ้นหากไม่ได้กําหนดค่าขอบเขต sdm.service
ในหน้าจอขอความยินยอม OAuth ใน Google Cloud คุณข้ามหน้าจอนี้ได้โดยการคลิกตัวเลือกขั้นสูง แล้วคลิกไปที่ Project
Name (ไม่ปลอดภัย)
ดูข้อมูลเพิ่มเติมได้ที่หน้าจอแอปที่ยังไม่ได้รับการยืนยัน
โทเค็นการเข้าถึง
การเรียกไปยัง SDM API ทั้งหมดเพื่อจัดการโครงสร้างและอุปกรณ์ที่ได้รับอนุญาตต้องใช้โทเค็นเพื่อการเข้าถึงที่ไม่ซ้ำกันซึ่งมอบให้ developer โดยuser ในระหว่างการให้สิทธิ์ โทเค็นเพื่อการเข้าถึงมีอายุสั้นและต้องรีเฟรชเป็นประจำเพื่อให้เข้าถึงได้อย่างต่อเนื่อง
หาก a user เพิกถอน developer สิทธิ์เข้าถึงโครงสร้างหรืออุปกรณ์ในภายหลัง โทเค็นการเข้าถึงจะหมดอายุทันทีและรีเฟรชไม่ได้ และdeveloper จะเรียกใช้ SDM API ในนามของ userนั้นไม่ได้อีกต่อไป
เพิกถอนการให้สิทธิ์บัญชี
การยกเลิกการให้สิทธิ์บัญชี Google ทำได้หลายวิธี วิธีที่เราแนะนำคือให้ผู้ใช้ใช้เครื่องมือจัดการการเชื่อมต่อพาร์ทเนอร์ (PCM) เพื่อแก้ไขสิทธิ์ของบัญชี ดูข้อมูลเพิ่มเติมได้ที่หัวข้อแก้ไขสิทธิ์ในบัญชี นอกจากนี้ คุณยังเพิกถอนโทเค็นการเข้าถึงได้ด้วยวิธีต่อไปนี้
ผู้ใช้สามารถเพิกถอนได้ที่ https://myaccount.google.com/permissions
นักพัฒนาแอปสามารถส่งโทเค็นการเข้าถึงไปยังปลายทางได้
https://oauth2.googleapis.com/revoke
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google OAuth และการเพิกถอนโทเค็นได้ที่การเพิกถอนโทเค็น
เว็บวิวที่ฝัง
นโยบายเบราว์เซอร์ที่ปลอดภัยใหม่ไม่อนุญาตให้มีคำขอ Google OAuth ในไลบรารีเบราว์เซอร์แบบฝัง ซึ่งมักเรียกว่า WebView แบบฝัง เว็บวิวที่ฝังทั้งหมดจะถูกบล็อก ไลบรารี WebView ที่ฝังอยู่เป็นปัญหาเนื่องจากอนุญาตให้นักพัฒนาแอปที่มุ่งร้ายสามารถดักรับและแก้ไขการสื่อสารระหว่าง Google กับผู้ใช้ WebView ที่ฝังไม่เพียงส่งผลต่อความปลอดภัยของบัญชี แต่ยังอาจส่งผลต่อความสามารถในการใช้งานแอปพลิเคชันด้วย
หากคุณได้รับผลกระทบจากนโยบายนี้ โปรดอ่านบทความการเปลี่ยนแปลงด้านความปลอดภัยที่กําลังจะเกิดขึ้นกับปลายทางการให้สิทธิ์ OAuth 2.0 ของ Google ใน WebView แบบฝังจากทีมสนับสนุน