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

Các sự kiện là không đồng bộ và do Google Cloud Pub/Sub quản lý, trong một chủ đề duy nhất cho mỗi Project. Các sự kiện 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 cá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 SDM API. Bạn có thể dễ dàng triển khai và xác minh các quy tắc này bằng cách sử dụng dự án Google Cloud.

Bật sự kiện

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

Chuyển đến Device Access Console

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

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

Định dạng chủ đề này do Google lưu trữ và sẽ duy trì cho dự án của bạn, trừ phi bạn tắt chủ đề Pub/Sub do Google lưu trữ. Nếu bật lại tính năng này sau, bạn sẽ được chuyển sang chủ đề Pub/Sub tự lưu trữ.

Các chủ đề Pub/Sub tự lưu trữ có thể được tạo hoặc thay đổi trong dự án Google Cloud riêng của nhà phát triển. Nhà phát triển cũng chịu trách nhiệm về mọi chi phí liên quan đến việc sử dụng Pub/Sub, hãy xem phần Giá Pub/Sub để biết thêm thông tin.

Tạo chủ đề Pub/Sub:

gcloud pubsub topics create {topic} --message-retention-duration=0s

Cấp các quyền cần thiết cho SDM API để truy cập và xuất bản dữ liệu sự kiện cho mã nhận dạng chủ đề của dự án:

gcloud pubsub topics add-iam-policy-binding projects/{project}/topics/{topic} \
--member="group:sdm-publisher@googlegroups.com" \
--role="roles/pubsub.publisher"

Định dạng của mã chủ đề bạn mới tạo sẽ có dạng như sau:

projects/gcp-project-name/subscriptions/topic-id

Ghi lại mã nhận dạng chủ đề của bạn, bạn sẽ cần mã này để hoàn tất việc bật sự kiện. Hãy xem phần Tạo một chủ đề để biết thêm thông tin.

Cách bật sự kiện:

  1. Đánh dấu vào Bật sự kiện rồi nhấp vào Tạo dự án.
  2. Nhấp vào biểu tượng cho chủ đề Pub/Sub rồi chọn Bật sự kiện bằng chủ đề PubSub.
  3. Nhập mã nhận dạng chủ đề Pub/Sub đã được cung cấp hoặc tạo trước đó.

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

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

Gói thuê bao kéo là gói thuê bao mà người đăng ký bắt đầu gửi yêu cầu đến máy chủ Pub/Sub để nhận các thông báo sự kiện trong hàng đợi. Đây là một cách nhanh chóng và dễ dàng để xác minh rằng các 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 của bạn trên Google Cloud:

Truy cập vào Google Cloud Shell

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

gcloud pubsub subscriptions create subscription-id --topic=projects/gcp-project-name/subscriptions/topic-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 gọi để liệt kê các thiết bị của bạn dưới dạng một trình 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ẽ được xuất bản sau lệnh gọi API này.

Tạo sự kiện

Các sự kiện được tạo cho tất cả các thay đổi về trường đặc điểm, một số thay đổi là tự động, một số thay đổi là thủ công.

Ví dụ: nếu nhiệt độ môi trường xung quanh Nest Thermostat thay đổi, thì một sự kiện cho đặc điểmNhiệt độ sẽ tự động được gửi kèm theo giá trị ambientTemperatureCelsius mới.

Để tự tạo một mã, hãy làm theo một trong hai cách sau:

  1. Thay đổi trạng thái của thiết bị theo cách thủ công, chẳng hạn như thay đổi chế độ của Máy điều nhiệt Nest.
  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 Indoor.
  3. Thực thi một lệnh trên thiết bị bằng SDM API.

Xem tin nhắn

Bạn có thể xem thông báo sự kiện trong dự án của mình trên Google Cloud, trong phần Đăng ký Pub/Sub:

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

  1. Nhấp vào Mã 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 cho biểu đồ Số lượng thông báo chưa được xác nhận. Điều này cho biết các thông báo sự kiện đã được gửi đến gói thuê bao của bạn. Nếu bạn không thấy hoạt động nào, hãy đợi một lát hoặc tạo thêm một vài sự kiện.
  3. Nhấp vào XEM TIN NHẮN để mở bảng Tin nhắn.
  4. Nhấp vào PULL (KÉO) để xem các thông báo. Các giá trị này phải tương ứng với những hành động mà bạn đã dùng để tạo sự kiện.

Bạn cũng có thể xem thông báo 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 hình thuê bao, cũng như các loại sự kiện mà SDM API 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á thư để giữ cho một thuê bao luôn gọn gàng và tránh gửi thư trùng lặp cho những người đăng ký khác. Bạn có thể xoá tất cả các thông báo đăng ký theo cách thủ công trong phần Đăng ký Pub/Sub:

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

  1. Nhấp vào mã nhận dạng gói thuê bao.
  2. Có một số cách để xác nhận và xoá:
    1. Nhấp vào XEM TIN NHẮN để mở bảng Tin nhắn. Đánh dấu vào hộp Bật thông báo xác nhận rồi nhấp vào KÉO để xem và xác nhận tất cả thông báo.
    2. Nhấp vào XOÁ HOÀN TOÀN TIN NHẮN để xoá hoàn toàn tất cả tin nhắn hiện có bằng cách xác nhận mà không xem chúng. Nhấp vào PURGE để xác nhận.

Bạn cũng có thể xoá các thông báo trong Cloud Shell bằng cách sử dụng cờ --auto-ack với 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, như mô tả trong phần Sử dụng các thuộc tính của gói thuê bao.

Mặc dù bạn có thể tuỳ ý quản lý các gói thuê bao và thông báo, nhưng đối với một ứng dụng phát hành công khai, bạn nên sử dụng Tài khoản dịch vụ để xác thực, thay vì tài khoản người dùng như bạn đã làm cho đến nay trong hướng dẫn bắt đầu nhanh này. Tài khoản dịch vụ được dùng bởi một ứng dụng hoặc máy ảo, chứ không phải một người, và có khoá tài khoản riêng biệt.

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