Ủy quyền

Developercó thể sử dụng SDM API để xem và quản lý các thiết bị Google Nest thay cho user. SDM API xác thực rằng user quản lý các thiết bị đang được truy cập, rằng user đã đồng ý chodeveloper đọc hoặc ghi các đặc điểm của từng thiết bị vàdeveloper đã được đưa vào danh sách cho phép để truy cập vào từng đặc điểm.

Để sử dụng SDM API cho hoạt động quản lý thiết bị, trước tiên,developer phải được useruỷ quyền.

Để xem hướng dẫn từng bước về quy trình uỷ quyền, hãy xem trang Uỷ quyền cho một tài khoản trong hướng dẫn Device Access Bắt đầu nhanh.

Để được trợ giúp về cách khắc phục lỗi uỷ quyền, hãy xem bài viết Lỗi uỷ quyền.

Quy trình OAuth

SDM API sử dụng quy trình Google OAuth 3 chân đểuser uỷ quyền:

  • Khi a user muốn uỷ quyền cho a developer quản lý các thiết bị Nest, developer sẽ gửiuser đến PCM, nơi userđăng nhập vào Tài khoản Google của họ.
  • user chọn các quyền cần cấp cho developertrong Trình quản lý kết nối đối tác.
  • user đưa ra sự đồng ý thông qua OAuth, cấp chodeveloper Mã uỷ quyền.
  • developer sử dụng Mã uỷ quyền để truy xuất Mã truy cập.
  • developer sử dụng Mã truy cập với các lệnh gọi đến SDM API để quản lý thiết bị.

Để tìm hiểu thêm về Google OAuth và cách thiết lập, hãy xem bài viết Sử dụng OAuth 2.0 để truy cập vào các API của Google.

Trình quản lý kết nối đối tác (PCM)

PCM được cung cấp bởi SDM API. Đây là một chế độ xem liệt kê tất cả các nhà, thiết bị và lựa chọn cấp quyền truy cập màuser có thể cấp cho developer. userchọn những thông tin cần cấp quyền truy cập trong quá trình uỷ quyền và vẫn giữ quyền kiểm soát đối với quyền truy cập đó.

Các lựa chọn được chọn trong PCM sẽ liên kết với các nhóm đặc điểm. Đây là những tập hợp đặc điểm mà developer sẽ được cấp quyền truy cập. Một số nhóm đặc điểm được liên kết với nhau, tuỳ thuộc vào loại tích hợp màdeveloper đang cung cấp cho uservà userphải cấp quyền cho những nhóm đặc điểm được liên kết đó để bật tính năng tích hợp đó. Nếu không, người dùng có thể cấp quyền cho từng nhóm đặc điểm riêng lẻ, chưa liên kết theo ý muốn.

Bật PCM

Để bật chế độ xem PCM cho user, hãy thay thế điểm cuối OAuth 2.0 tiêu chuẩn của API Google bằng điểm cuối OAuth mới này cho Yêu cầu uỷ quyền:

https://nestservices.google.com/partnerconnections/project-id/auth

Sử dụng các tham số này trong URL:

Tham số Mô tả
redirect_uri URI để chuyển hướng user sau khi uỷ quyền thành công.
client_id Mã ứng dụng OAuth 2.0 trong Dự án Google Cloud. Đảm bảo đây là địa chỉ email được liên kết với Project ID của bạn. Xin lưu ý rằng mã ứng dụng khách OAuth phải hợp lệ và riêng biệt với một project, đồng thời không được dùng chung với các projectkhác.
access_type Giá trị cần sử dụng: offline
prompt Giá trị cần sử dụng: consent
response_type Giá trị cần sử dụng: code
Mã uỷ quyền dự kiến sẽ được trả về.
scope Giá trị cần sử dụng: https://www.googleapis.com/auth/sdm.service
Phạm vi SDM API.
state Không bắt buộc. Một giá trị không rõ ràng mà ứng dụng developer sử dụng để duy trì trạng thái giữa yêu cầu và lệnh gọi lại.

Ví dụ về 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

Sau khi user cấp quyền, Mã uỷ quyền sẽ được trả về dưới dạng tham số code trong URI chuyển hướng. Sử dụng mã này để lấy mã truy cập.

Để được trợ giúp về mọi lỗi gặp phải khi truy cập vào PCM, hãy xem Tài liệu tham khảo về lỗi của Trình quản lý kết nối đối tác (PCM).

Thêm PCM vào ứng dụng

Trong ứng dụng của bạn, hãy thêm khung hiển thị PCM bằng URL này:

https://nestservices.google.com/partnerconnections

Khi user đăng nhập, trang này sẽ cho thấy tất cảDevice Access developerđược liên kết, cũng như danh sách tất cả các cấu trúc và thiết bị có nút bật/tắt để cấp và thu hồi quyền. Người dùng user cũng có thể ngắt kết nối với từng đối tác trên trang này.

Ứng dụng chưa được xác minh

SDM API sử dụng một phạm vi bị hạn chế, tức là mọi ứng dụng sử dụng phạm vi này trong quá trình uỷ quyền sẽ ở trạng thái "chưa được xác minh" trừ phi bạn hoàn tất quy trình Xác minh API OAuth. Khi sử dụng Device Access cho mục đích cá nhân, bạn không cần phải xác minh API OAuth.

Bạn có thể thấy màn hình "Google chưa xác minh ứng dụng này" trong quá trình uỷ quyền. Màn hình này xuất hiện nếu phạm vi sdm.service chưa được định cấu hình trên màn hình xin phép bằng OAuth trong Google Cloud. Bạn có thể bỏ qua màn hình này bằng cách nhấp vào lựa chọn Nâng cao rồi nhấp vào Chuyển đến Tên dự án (không an toàn).

Hãy xem phần Màn hình ứng dụng chưa được xác minh để biết thêm thông tin.

Mã truy cập

Tất cả các lệnh gọi đến SDM API để quản lý các cấu trúc và thiết bị được uỷ quyền đều phải sử dụng mã truy cập duy nhất được cấp cho developer bởiuser trong quá trình uỷ quyền. Mã truy cập có thời hạn ngắn và phải được làm mới thường xuyên để đảm bảo bạn có thể tiếp tục truy cập.

Nếu a user sau này thu hồi developer quyền truy cập vào một cấu trúc hoặc thiết bị, thì mã truy cập sẽ hết hạn ngay lập tức và không thể làm mới, đồng thờideveloper sẽ không còn có thể gọi SDM API thay mặt cho usernữa.

Thu hồi quyền truy cập vào tài khoản

Có nhiều cách để huỷ uỷ quyền cho một Tài khoản Google. Phương thức ưu tiên là người dùng sử dụng Trình quản lý kết nối đối tác (PCM) để sửa đổi quyền đối với tài khoản. Hãy xem bài viết Sửa đổi quyền đối với tài khoản để biết thêm thông tin. Bạn cũng có thể thu hồi mã truy cập bằng các phương thức sau:

  1. Người dùng có thể thu hồi quyền truy cập tại https://myaccount.google.com/permissions.

  2. Nhà phát triển có thể truyền mã truy cập đến điểm cuối https://oauth2.googleapis.com/revoke. Để tìm hiểu thêm về Google OAuth và việc thu hồi mã thông báo, hãy xem phần Thu hồi mã thông báo.

Chế độ xem web được nhúng

Một chính sách mới về trình duyệt an toàn sẽ cấm các yêu cầu Google OAuth trong các thư viện trình duyệt được nhúng (thường được gọi là webview được nhúng). Tất cả webview được nhúng sẽ bị chặn. Các thư viện webview được nhúng gây ra vấn đề vì chúng cho phép nhà phát triển xấu chặn và thay đổi thông tin liên lạc giữa Google và người dùng. WebView nhúng không chỉ ảnh hưởng đến tính bảo mật của tài khoản mà còn có thể ảnh hưởng đến khả năng sử dụng của ứng dụng.

Nếu chính sách này ảnh hưởng đến bạn, hãy tham khảo bài viết hỗ trợ Những thay đổi sắp tới về bảo mật đối với điểm cuối uỷ quyền OAuth 2.0 của Google trong webview được nhúng.