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 ของตน
- พาร์ทเนอร์เลือกสิทธิ์ที่จะให้สำหรับผู้ใช้ใน PCM user developer
- ผู้ใช้ให้ความยินยอมผ่าน OAuth ซึ่งให้รหัสการให้สิทธิ์แก่พาร์ทเนอร์ user 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 ไคลเอ็นต์ ใช้เพื่อรักษาสถานะระหว่างคำขอและการเรียกกลับ |
ตัวอย่าง 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หลังจากที่ผู้ใช้ให้สิทธิ์แล้ว ระบบจะส่งรหัสการให้สิทธิ์กลับมา
เป็นพารามิเตอร์ code ใน URI การเปลี่ยนเส้นทาง user ใช้รหัสนี้เพื่อรับโทเค็นเพื่อการเข้าถึง
เพิ่ม 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 คุณข้ามหน้าจอนี้ได้โดยคลิกตัวเลือกขั้นสูง แล้วคลิกไปที่ ชื่อโปรเจ็กต์ (ไม่ปลอดภัย)
ดูข้อมูลเพิ่มเติมได้ที่หน้าจอแอปที่ไม่ได้ยืนยัน
โทเค็นเพื่อการเข้าถึง
การเรียกใช้ 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 และการเพิกถอนโทเค็นได้ที่หัวข้อ การเพิกถอนโทเค็น
WebView แบบฝัง
นโยบายเบราว์เซอร์ที่ปลอดภัยใหม่ห้ามคำขอ Google OAuth ในไลบรารีเบราว์เซอร์แบบฝัง ซึ่งโดยทั่วไปเรียกว่า WebView แบบฝัง ระบบจะบล็อก WebView แบบฝังทั้งหมด ไลบรารี WebView แบบฝังมีปัญหาเนื่องจากอนุญาตให้นักพัฒนาแอปที่ประสงค์ร้ายดักจับและเปลี่ยนแปลงการสื่อสารระหว่าง Google กับผู้ใช้ได้ WebView แบบฝังไม่เพียงส่งผลต่อความปลอดภัยของบัญชี แต่ยังอาจส่งผลต่อความสามารถในการใช้งานแอปพลิเคชันด้วย
หากคุณได้รับผลกระทบจากนโยบายนี้ โปรดดู การเปลี่ยนแปลงด้านความปลอดภัยที่จะเกิดขึ้นกับปลายทางการให้สิทธิ์ OAuth 2.0 ของ Google ใน WebView แบบฝัง ในบทความช่วยเหลือ