Ủy quyền

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

Để sử dụng API SDM cho việc 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 tài khoản trong Device Access Hướng dẫn bắt đầu nhanh.

Để được trợ giúp khắc phục sự cố về lỗi uỷ quyền, hãy xem phần Lỗi uỷ quyền.

Quy trình OAuth

API SDM sử dụng quy trình OAuth ba bên của Google để uỷ quyềnuser :

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

Để tìm hiểu thêm về OAuth của Google 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 API của Google.

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

PCM do SDM API cung cấp. Đây là một khung hiển thị liệt kê tất cả cấu trúc, thiết bị và tuỳ chọn truy cập màuser có thể cấp cho developer. usersẽ chọn nội dung sẽ cấp quyền truy cập trong quá trình uỷ quyền và duy trì quyền kiểm soát quyền truy cập đó.

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

Bật PCM

Để bật chế độ xem PCM cho user, hãy thay thế điểm cuối OAuth 2.0 API Google tiêu chuẩn 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:

Thông 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. Hãy đảm bảo rằng mã này giống với mã được liên kết với Project mã nhận dạng của bạn. Xin lưu ý rằng mã ứng dụng khách OAuth phải hợp lệ và duy nhất cho một project, đồng thời không thể dùng chung với các projectkhác.
access_type Giá trị cần sử dụng: offline
prompt Giá trị để 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 API SDM.
state Không bắt buộc. Một giá trị mờ 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 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, hãy thêm chế độ xem PCM bằng URL sau:

https://nestservices.google.com/partnerconnections

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

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

API SDM sử dụng một phạm vi bị hạn chế, nghĩa là mọi ứng dụng sử dụng phạm vi này trong quá trình uỷ quyền sẽ "chưa được xác minh" trừ khi quá trình Xác minh API OAuth đã hoàn tất. 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 sẽ xuất hiện nếu bạn không định cấu hình phạm vi sdm.service 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 tuỳ chọn Advanced (Nâng cao), sau đó nhấp vào Go to Project Name (unsafe) (Chuyển đến Project Name (Tên dự án) (không an toàn)).

Hãy xem 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ả lệnh gọi đến API SDM để quản lý các cấu trúc và thiết bị được uỷ quyền phải sử dụng mã thông báo truy cập duy nhất douser cấp cho developer trong quá trình uỷ quyền. Mã thông báo 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 quyền truy cập liên tục.

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

Thu hồi quyền đối với tài khoản

Có nhiều cách để huỷ uỷ quyền cho một tài khoản Google. Người dùng nên sử dụng Trình quản lý kết nối đối tác (PCM) để sửa đổi các quyền của tài khoản. Hãy xem phần 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ã thông báo 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ề việc thu hồi mã thông báo và OAuth của Google, hãy xem bài viết Thu hồi mã thông báo.

Khung hiển thị web được nhúng

Chính sách mới về trình duyệt an toàn nghiêm cấm các yêu cầu Google OAuth trong thư viện trình duyệt được nhúng, thường được gọi là webview được nhúng. Tất cả thành phần hiển thị web được nhúng sẽ bị chặn. Các thư viện webview được nhúng gặp nhiều vấn đề vì chúng cho phép một nhà phát triển bất chính chặn và thay đổi hoạt động giao tiếp giữa Google và người dùng. Khung hiển thị web được 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 hữu 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ợ về Các 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 các thành phần hiển thị web được nhúng.