Các sự kiện không đồng bộ và do Google Cloud Pub/Sub quản lý, trong một chủ đề duy nhất cho mỗi Project. 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 việc nhận được sự kiện miễn là người dùng không thu hồi mã thông báo 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 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 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 phần Thông tin dự án phải có một giá trị, được gọi là Mã chủ đề, theo định dạng:
projects/sdm-prod/topics/enterprise-project-id
Nếu bạn chưa bật sự kiện:
- Nhấp vào biểu tượng cho chủ đề Pub/Sub rồi chọn Chỉnh sửa.
- Đánh dấu vào Bật sự kiện rồi nhấp vào Lưu.
- Hệ thống sẽ tạo cho bạn một Mã chủ đề ở định dạng như trên.
Sao chép Mã chủ đề, bạn sẽ cần mã này để tạo 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à nơi người đăng ký bắt đầu gửi yêu cầu đến máy chủ Pub/Sub cho các thông báo sự kiện trong hàng đợi. Đây là 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 Google Cloud:
Tại lời nhắc của Cloud Shell, hãy chạy lệnh sau để tạo gói thuê bao lấy dữ liệu cho chủ đề của bạn, sử dụng bất kỳ subscription-id nào bạn muốn 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 sự kiện lần đầu 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 dưới dạng 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'
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 về trường đặc điểm, một số sự kiện là tự động, một số sự kiện là thủ công.
Ví dụ: nếu nhiệt độ môi trường xung quanh máy điều nhiệt Nest Thermostat thay đổi, thì một sự kiện cho thuộc tínhNhiệt độ sẽ tự động được gửi kèm theo giá trị ambientTemperatureCelsius
mới.
Để tạo một báo cáo theo cách thủ công, hãy làm theo một trong hai cách sau:
- 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.
- 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.
- Thực thi lệnh trên thiết bị bằng API SDM.
Xem tin nhắn
Bạn có thể xem tin nhắn sự kiện trong dự án Google Cloud của mình, trong phần Đăng ký Pub/Sub:
Chuyển đến phần Gói thuê bao Google Cloud Pub/Sub
- Nhấp vào Mã gói thuê bao mà bạn đã tạo trước đó.
- 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 của biểu đồ Số lượng thư chưa xác nhận. Điều này cho biết rằng 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 chút hoặc tạo thêm một vài sự kiện.
- Nhấp vào XEM TIN NHẮN để mở bảng điều khiển Tin nhắn.
- Nhấp vào PULL để xem tin nhắn. Các giá trị 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 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 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 loại 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 gói thuê bao luôn sạch sẽ và tránh gửi thư trùng lặp cho người đăng ký khác. Bạn có thể xoá tất 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
- Nhấp vào Mã nhận dạng gói thuê bao.
- Có một số cách để xác nhận và xoá:
- Nhấp vào XEM TIN NHẮN để mở bảng điều khiển Tin nhắn. Đánh dấu vào hộp đánh dấu Bật thông báo xác nhận rồi nhấp vào PULL (KÉO) để xem và xác nhận tất cả thông báo.
- Nhấp vào XOÁ TIN NHẮN để xoá tất cả tin nhắn hiện có bằng cách xác nhận mà không cần xem tin nhắn. Nhấp vào XOÁ để xác nhận.
Bạn cũng có thể xoá sạch 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 thuộc tính gói thuê bao.
Mặc dù bạn có thể tự quyết định cách quản lý gói thuê bao và thông báo, nhưng đối với ứng dụng chính thức, 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 trong hướng dẫn bắt đầu nhanh này. Tài khoản dịch vụ do một ứng dụng hoặc máy ảo sử dụng, 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.