Uỷ quyền

Developercó thể sử dụng API SDM để xem và quản lý các thiết bị Google Nest thay mặt 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 usercho phép.

Để biết hướng dẫn từng bước về quy trình ủy quyền, hãy xem trang Ủy 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 các lỗi uỷ quyền, hãy xem phần Lỗi uỷ quyền.

Luồng OAuth

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

  • Khi a user muốn cho phép a developer để quản lý các thiết bị Nest, developer sẽ gửiuser đến PCM, trong đó usersẽ đăng nhập vào Tài khoản Google của trẻ.
  • user chọn quyền cấp cho developer trong PCM.
  • user cho phép sử dụng thông qua OAuth, cấp chodeveloper một Mã uỷ quyền.
  • developer sử dụng Mã ủy quyền để truy xuất mã thông báo truy cập.
  • developer Sử dụng Mã 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ề 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 API Google.

Người quản lý kết nối đối tác (PCM)

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

Các lựa chọn trong bản đồ PCM để liên kết các nhóm tính trạng, là tập hợp các đặc điểm developer sẽ được cấp quyền truy cập. Một số nhóm tính trạng đượ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 user, và userphải cấp quyền cho các nhóm tính trạng đượ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 các nhóm đặc điểm riêng lẻ, chưa được liên kết như mong muốn.

Bật PCM

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

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

Sử dụng các thông số sau trong URL:

Thông số Nội dung 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 khách OAuth 2.0 từ Dự án Google Cloud của bạn. Đảm bảo rằng đây chính là tài khoản 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à là duy nhất đối với một projectvà không được chia sẻ với các projectkhác.
access_type Giá trị sử dụng: offline
prompt Giá trị sử dụng: consent
response_type Giá trị sử dụng: code
Chúng tôi dự kiến sẽ có mã uỷ quyền.
scope Giá trị 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à developer ứng dụng sử dụng để duy trì trạng thái giữa yêu cầu và lệnh gọi lại.
linking_token Mã thông báo liên kết thu được từ lệnh GetToken.

URL PCM mẫu:

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 được trả về dưới dạng tham số code trong URI chuyển hướng. Hãy sử dụng mã này để lấy mã truy cập.

Để được trợ giúp cho 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 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 thành phần hiển thị PCM bằng URL này:

https://nestservices.google.com/partnerconnections

Khi user đăng nhập, trang này sẽ hiển thị tất cả cácDevice 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. user cũng có thể ngắt kết nối đối tác trên cơ sở mỗi đối tác khỏi 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ế, có nghĩa là bất kỳ ứng dụng nào sử dụng phạm vi này trong quá trình ủy quyền sẽ "chưa được xác minh" trừ khi hoàn tất Xác minh API OAuth. Khi sử dụng Device Access cho mục đích cá nhân, bạn không bắt buộc 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 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. Có thể bỏ qua màn hình này bằng cách nhấp vào tuỳ chọn Advanced, sau đó nhấp vào Chuyển đến Tên dự án (không an toàn).

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

Mã thông báo truy cập

Tất 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 do developer cấpuser trong quá trình uỷ quyền. Mã truy cập chỉ tồn tại trong thời gian ngắn và phải được làm mới thường xuyên để đảm bảo khả năng truy cập liên tục.

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

Thu hồi ủy quyền tài khoản

Có nhiều cách để hủy cấp phép tài khoản Google. Phương thức ưu tiên là người dùng có thể sử dụng Trình quản lý kết nối đối tác (PCM) để sửa đổi quyền của tài khoản. Hãy xem bài viết Sửa đổi quyền 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 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 bài viết Thu hồi mã thông báo.

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

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

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