Đă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 Console. Chọn Dự án của bạn trong Console nếu bạn chưa chọn.

Chuyển đến Device Access Bảng điều khiển

Nếu bạn đã bật sự kiện (ví dụ: trong quá trình tạo dự án), 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ã nhận dạng 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 trên đám mây của riêng 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 SDM API cần thiết để 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ã nhận dạng chủ đề mà 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ủ đề vì bạn sẽ cần mã này để hoàn tất việc bật sự kiện. Hãy xem bài viết Tạo chủ đề để biết thêm thông tin.

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

  1. Chọn 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 lượt đăng ký theo chủ đề để có thể truy xuất các thông báo sự kiện.

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

Gói thuê bao kéo là nơi 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 trên đám mây của bạn trên Google Cloud:

Chuyển đến 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ố 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 báo cáo, hãy làm theo một trong 2 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 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 trên đám mây 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ã 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 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 về sự kiện đã được gửi đến cho 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 để xem các thông báo. Các thông báo này phải tương ứng với những thao tác mà bạn đã dùng để tạo sự kiện.

Bạn cũng có thể xem các thông báo trong Cloud Shell bằng một 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 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 Gói thuê bao Pub/Sub:

Chuyển đến phần 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á:
    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 PULL để xem và xác nhận tất cả tin nhắn.
    2. Nhấp vào XÓA 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 XOÁ HOÀN TOÀN để 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ể tự quyết định cách 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.