การให้สิทธิ์

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)

เพิ่ม 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) เพื่อแก้ไขสิทธิ์ของบัญชี ดูข้อมูลเพิ่มเติมได้ที่หัวข้อแก้ไขสิทธิ์ในบัญชี นอกจากนี้ คุณยังเพิกถอนโทเค็นการเข้าถึงได้ด้วยวิธีต่อไปนี้

  1. ผู้ใช้สามารถเพิกถอนได้ที่ https://myaccount.google.com/permissions

  2. นักพัฒนาแอปสามารถส่งโทเค็นการเข้าถึงไปยังปลายทางได้ https://oauth2.googleapis.com/revoke ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google OAuth และการเพิกถอนโทเค็นได้ที่การเพิกถอนโทเค็น

เว็บวิวที่ฝัง

นโยบายเบราว์เซอร์ที่ปลอดภัยใหม่ไม่อนุญาตให้มีคำขอ Google OAuth ในไลบรารีเบราว์เซอร์แบบฝัง ซึ่งมักเรียกว่า WebView แบบฝัง เว็บวิวที่ฝังทั้งหมดจะถูกบล็อก ไลบรารี WebView ที่ฝังอยู่เป็นปัญหาเนื่องจากอนุญาตให้นักพัฒนาแอปที่มุ่งร้ายสามารถดักรับและแก้ไขการสื่อสารระหว่าง Google กับผู้ใช้ WebView ที่ฝังไม่เพียงส่งผลต่อความปลอดภัยของบัญชี แต่ยังอาจส่งผลต่อความสามารถในการใช้งานแอปพลิเคชันด้วย

หากคุณได้รับผลกระทบจากนโยบายนี้ โปรดอ่านบทความการเปลี่ยนแปลงด้านความปลอดภัยที่กําลังจะเกิดขึ้นกับปลายทางการให้สิทธิ์ OAuth 2.0 ของ Google ใน WebView แบบฝังจากทีมสนับสนุน