Đăng ký theo dõi sự kiện

Các sự kiện không đồng bộ và được Google Cloud Pub/Sub quản lý, trong một chủ đề duy nhất cho mỗi Project. Sự kiện sẽ cung cấp thông tin cập nhật cho tất cả thiết bị và cấu trúc, đồng thời đảm bảo nhận được sự kiện, miễn là người dùng không thu hồi mã truy cập và thông báo sự kiện chưa hết hạn.

Sự kiện là một tính năng không bắt buộc của API SDM. Bạn có thể dễ dàng triển khai và xác minh các tính năng này bằng cách sử dụng dự án Google Cloud.

Bật sự kiện

Bạn có thể bật tính năng sự kiện trong Device Access Bảng điều khiển. Chọn Dự án của bạn trong Console (nếu bạn chưa chọn).

Truy cập Device Access Bảng điều khiển

Nếu bạn đã bật các sự kiện (ví dụ: trong quá trình tạo dự án), thì trường chủ đề Pub/Sub trong mục Thông tin dự án đã có sẵn một giá trị được gọi là Mã chủ đề, ở định dạng như sau:

projects/sdm-prod/topics/enterprise-project-id

Nếu bạn chưa bật sự kiện:

  1. Nhấp vào biểu tượng cho chủ đề Pub/Sub rồi chọn Chỉnh sửa.
  2. Đánh dấu vào mục Bật sự kiện rồi nhấp vào Lưu.
  3. Mã chủ đề sẽ được tạo cho bạn theo định dạng như ở trên.

Sao chép mã nhận dạng chủ đề, bạn sẽ cần mã này để tạo một gói thuê bao cho chủ đề này nhằm truy xuất các thông báo về sự kiện.

Tạo gói thuê bao kéo

Gói thuê bao kéo là khi người đăng ký bắt đầu yêu cầu đến máy chủ Pub/Sub đối với các thông báo sự kiện đã đưa vào hàng đợi. Đây là một cách nhanh chóng và dễ dàng để xác minh rằng sự kiện đang được tạo cho các thiết bị được uỷ quyền của bạn.

Mở Cloud Shell cho dự án trên Google Cloud:

Truy cập Google Cloud Shell

Tại lời nhắc Cloud Shell, hãy chạy lệnh sau để tạo một gói thuê bao kéo (pull) cho chủ đề của bạn, bằng cách sử dụng bất kỳ subscription-id nào bạn thích và mã chủ đề duy nhất của bạn:

gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].

Bắt đầu sự kiện

Để bắt đầu các sự kiện lần đầu tiên sau khi tạo gói thuê bao Pub/Sub, hãy thực hiện lệnh gọi để liệt kê các thiết bị của bạn làm điều kiện kích hoạt một lần:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

Các sự kiện cho tất cả cấu trúc và thiết bị sẽ xuất bản sau lệnh gọi API này.

Tạo sự kiện

Sự kiện được tạo cho tất cả các thay đổi đối với trường trait, một số thay đổi là tự động và một số thay đổi khác sẽ diễn ra theo cách thủ công.

Ví dụ: nếu nhiệt độ môi trường xung quanh ở gần Nest Thermostat của bạn thay đổi, một sự kiện về trạng tháiNhiệt độ sẽ tự động được gửi bằng một giá trị ambientTemperatureCelsius mới.

Để tạo bản ghi theo cách thủ công, hãy thực hiện một trong hai cách sau:

  1. Thay đổi trạng thái của thiết bị về mặt vật lý, chẳng hạn như thay đổi chế độ của máy Nest Thermostat.
  2. Kích hoạt một sự kiện, chẳng hạn như chuyển động, người hoặc âm thanh trên Google Nest Cam trong nhà.
  3. Thực thi lệnh trên thiết bị bằng API SDM.

Xem tin nhắn

Bạn có thể xem các thông báo sự kiện trong dự án Google Cloud, tại mục Gói thuê bao Pub/Sub:

Chuyển đến trang Gói thuê bao Google Cloud Pub/Sub

  1. Nhấp vào Mã gói thuê bao mà bạn đã tạo trước đó.
  2. Trên màn hình Thông tin chi tiết về gói thuê bao, bạn sẽ thấy hoạt động trên biểu đồ Số lượng tin nhắn chưa được xác nhận. Mã này cho biết gói thuê bao của bạn đã nhận được thông báo sự kiện. Nếu bạn không thấy hoạt động nào, hãy đợi một chút hoặc tạo thêm một vài sự kiện.
  3. Nhấp vào XEM TIN NHẮN để hiển thị bảng Tin nhắn.
  4. Nhấp vào KÉO để xem thư. Các hành động này phải tương ứng với các hành động mà bạn đã dùng để tạo sự kiện.

Bạn cũng có thể xem tin nhắn trong Cloud Shell bằng lệnh pull cơ bản:

gcloud pubsub subscriptions pull subscription-id

Để biết thêm thông tin về các loại gói thuê bao, cũng như các loại sự kiện do API SDM gửi và cách sử dụng các sự kiện đó, hãy xem phần Sự kiện.

Quản lý thư

Bạn nên thường xuyên xác nhận và xoá hoàn toàn các tin nhắn để gói thuê bao luôn sạch sẽ và tránh việc gửi tin nhắn trùng lặp cho những người đăng ký khác. Bạn có thể xoá hoàn toàn mọi thông báo của gói thuê bao theo cách thủ công trong phần Gói thuê bao Pub/Sub:

Chuyển đến trang Gói thuê bao Google Cloud Pub/Sub

  1. Nhấp vào Mã gói thuê bao.
  2. Có một số cách để xác nhận và xoá hoàn toàn:
    1. Nhấp vào XEM TIN NHẮN để hiển thị bảng Tin nhắn. Đánh dấu vào hộp Enable ack messages (Bật thông báo ack) rồi nhấp vào Kéo (PULL) để xem và xác nhận tất cả các thông báo.
    2. Nhấp vào TÌM HIỂU THƯ để xoá hoàn toàn mọi thư hiện có bằng cách xác nhận mà không xem. Nhấp vào DUYỆT TÌM để xác nhận.

Bạn cũng có thể xoá hoàn toàn các tin nhắn trong Cloud Shell bằng cách sử dụng cờ --auto-ack với một lệnh pull cơ bản:

gcloud pubsub subscriptions pull subscription-id --auto-ack

Quản lý gói thuê bao

Bạn có thể định cấu hình gói thuê bao theo nhiều cách khác nhau, như mô tả trong phần Sử dụng thuộc tính gói thuê bao.

Bạn có toàn quyền quyết định cách quản lý các gói thuê bao và thông báo. Tuy nhiên, đối với ứng dụng chính thức, bạn nên dùng Tài khoản dịch vụ để xác thực thay vì dùng tài khoản người dùng như trong hướng dẫn bắt đầu nhanh này. Tài khoản dịch vụ được một ứng dụng hoặc máy ảo chứ không phải người sử dụng, đồng thời có khoá tài khoản riêng.

Để biết thêm thông tin về quy trình xác thực tài khoản dịch vụ bằng Device Access, hãy xem bài viết Sự kiện.