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

Developerสามารถใช้ SDM API เพื่อดูและจัดการ อุปกรณ์ Google Nest ในนามของ userได้ SDM API จะตรวจสอบว่า user จัดการอุปกรณ์ที่กําลังเข้าถึง user ยินยอมให้developer อ่านหรือเขียนลักษณะเฉพาะของอุปกรณ์ และdeveloper ได้รับอนุญาตพิเศษให้เข้าถึงลักษณะเฉพาะแต่ละรายการได้

หากต้องการใช้ SDM API สําหรับการจัดการอุปกรณ์developer ต้องได้รับอนุญาตจาก userก่อน

สําหรับขั้นตอนการให้สิทธิ์แบบทีละขั้น โปรดดูที่หน้าให้สิทธิ์บัญชีของ Device Access คู่มือเริ่มใช้งานฉบับย่อ

สําหรับความช่วยเหลือในการแก้ปัญหาข้อผิดพลาดในการให้สิทธิ์ โปรดดูที่ข้อผิดพลาดในการให้สิทธิ์

ขั้นตอน OAuth

SDM API ใช้ขั้นตอน Google OAuth แบบ 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 APIs

ผู้จัดการการเชื่อมต่อกับพาร์ทเนอร์ (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 เพื่อรักษาสถานะระหว่างคําขอและการติดต่อกลับ
linking_token โทเค็นการลิงก์ที่ได้รับจากคําสั่ง GetToken

ตัวอย่าง 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 เพื่อการใช้งานส่วนบุคคล ก็ไม่จําเป็นต้องใช้การยืนยัน API OAuth

คุณอาจเห็นหน้าจอ "Google ยังไม่ได้ยืนยันแอปนี้" ในระหว่างขั้นตอนการให้สิทธิ์ ซึ่งจะปรากฏขึ้นหากยังไม่ได้กําหนดค่าขอบเขต sdm.service ในหน้าจอคํายินยอม OAuth ใน Google Cloud คุณสามารถข้ามหน้าจอนี้ไปได้โดยคลิกตัวเลือกขั้นสูง แล้วคลิกไปที่ชื่อโครงการ (ไม่ปลอดภัย)

ดูหน้าจอแอปที่ยังไม่ได้รับการยืนยันสําหรับข้อมูลเพิ่มเติม

โทเค็นเพื่อการเข้าถึง

การเรียกไปยัง SDM API เพื่อจัดการโครงสร้างและอุปกรณ์ที่ได้รับอนุญาตทั้งหมดต้องใช้โทเค็นเพื่อการเข้าถึงที่ไม่ซ้ํากันซึ่งให้ developer โดยuser ในระหว่างการให้สิทธิ์ โทเค็นเพื่อการเข้าถึงจะใช้งานได้ไม่นานและต้อง รีเฟรชเป็นประจําเพื่อให้มั่นใจถึงการเข้าถึงที่ต่อเนื่อง

หาก a user เพิกถอน developer การเข้าถึงโครงสร้างหรืออุปกรณ์ในภายหลัง โทเค็นเพื่อการเข้าถึงจะหมดอายุทันทีและจะรีเฟรชไม่ได้ และdeveloper จะเรียก SDM API ในนามของ API ดังกล่าวไม่ได้อีกต่อไป user

เพิกถอนการให้สิทธิ์บัญชี

การยกเลิกการให้สิทธิ์บัญชี Google ทําได้หลายวิธี วิธีการที่แนะนําคือให้ผู้ใช้ใช้เครื่องมือจัดการการเชื่อมต่อของพาร์ทเนอร์ (PCM) เพื่อแก้ไขสิทธิ์ของบัญชี ดูแก้ไขสิทธิ์ของบัญชีสําหรับข้อมูลเพิ่มเติม นอกจากนี้คุณยังเพิกถอนโทเค็นการเข้าถึงได้โดยทําดังนี้

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

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

มุมมองเว็บแบบฝัง

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

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