เหตุการณ์ไม่พร้อมกันและจัดการโดย Google Cloud Pub/Sub ในหัวข้อเดียวต่อ Projectกิจกรรมจะช่วยให้มีการอัปเดตสำหรับอุปกรณ์และโครงสร้างทั้งหมด รวมถึงการรับเหตุการณ์ตราบใดที่ผู้ใช้ไม่เพิกถอนโทเค็นเพื่อการเข้าถึงและข้อความเหตุการณ์ยังไม่หมดอายุ
เหตุการณ์คือฟีเจอร์เสริมของ SDM API ซึ่งคุณสามารถนำไปใช้และตรวจสอบได้อย่างง่ายดายโดยใช้โปรเจ็กต์ Google Cloud ของคุณ
เปิดใช้กิจกรรม
คุณเปิดใช้เหตุการณ์ได้ใน Device Access คอนโซล เลือก "โปรเจ็กต์" ในคอนโซล หากยังไม่ได้เลือก
หากคุณเปิดใช้เหตุการณ์แล้ว (เช่น ระหว่างการสร้างโปรเจ็กต์) ช่องหัวข้อ Pub/Sub ในส่วนข้อมูลโปรเจ็กต์ควรมีค่าที่เรียกว่ารหัสหัวข้อในรูปแบบต่อไปนี้อยู่แล้ว
projects/sdm-prod/topics/enterprise-project-id
หากคุณไม่ได้เปิดใช้เหตุการณ์ ให้ทำดังนี้
- คลิกไอคอน สำหรับหัวข้อ Pub/Sub แล้วเลือกแก้ไข
- เลือกเปิดใช้กิจกรรม แล้วคลิกบันทึก
- ระบบจะสร้างรหัสหัวข้อให้คุณในรูปแบบที่แสดงข้างต้น
คัดลอกรหัสหัวข้อ คุณจะต้องใช้รหัสหัวข้อในการสร้างการสมัครใช้บริการหัวข้อดังกล่าวเพื่อให้ดึงข้อความเหตุการณ์ได้
สร้างการสมัครใช้บริการพุล
การสมัครใช้บริการพุลคือตำแหน่งที่ผู้สมัครใช้บริการเริ่มคำขอไปยังเซิร์ฟเวอร์ Pub/Sub สำหรับข้อความเหตุการณ์ที่อยู่ในคิว ซึ่งเป็นวิธีที่ง่ายและรวดเร็วในการยืนยันว่าระบบกำลังสร้างเหตุการณ์สำหรับอุปกรณ์ที่ได้รับอนุญาต
เปิด Cloud Shell สำหรับโปรเจ็กต์ Google Cloud ของคุณ
ที่พรอมต์ Cloud Shell ให้เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างการสมัครรับข้อมูลแบบพุลในหัวข้อของคุณโดยใช้ subscription-id ใดก็ได้ที่คุณชอบและรหัสหัวข้อที่ไม่ซ้ำกัน
gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].
เริ่มกิจกรรม
หากต้องการเริ่มเหตุการณ์เป็นครั้งแรกเมื่อสร้างการสมัครใช้บริการ Pub/Sub แล้ว ให้เรียกใช้เพื่อแสดงอุปกรณ์เป็นทริกเกอร์แบบครั้งเดียว ดังนี้
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
ระบบจะเผยแพร่เหตุการณ์สำหรับโครงสร้างและอุปกรณ์ทั้งหมดหลังจากการเรียก API นี้
สร้างเหตุการณ์
ระบบจะสร้างเหตุการณ์สำหรับการเปลี่ยนแปลงช่องลักษณะทั้งหมด โดยบางรายการจะเป็นแบบอัตโนมัติและด้วยตนเองบางส่วน
เช่น หากอุณหภูมิแวดล้อมใกล้กับ Nest Thermostat เปลี่ยนแปลงไป ระบบจะส่งเหตุการณ์สำหรับลักษณะอุณหภูมิ
ด้วยค่า ambientTemperatureCelsius
ใหม่โดยอัตโนมัติ
หากต้องการสร้างรหัสด้วยตนเอง ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
- เปลี่ยนสถานะของอุปกรณ์ เช่น เปลี่ยนโหมดของ Nest Thermostat
- ทริกเกอร์เหตุการณ์ เช่น การเคลื่อนไหว บุคคล หรือเสียงใน Google Nest Cam Indoor
- เรียกใช้คำสั่งของอุปกรณ์ โดยใช้ SDM API
ดูข้อความ
ดูข้อความกิจกรรมได้ในโปรเจ็กต์ Google Cloud ในส่วนการสมัครใช้บริการ Pub/Sub ดังนี้
ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub
- คลิกรหัสการสมัครใช้บริการที่คุณสร้างไว้ก่อนหน้านี้
- ในหน้าจอรายละเอียดการสมัครรับข้อมูล คุณควรเห็นกิจกรรมในแผนภูมิจำนวนข้อความที่ไม่มีการสมัครรับข้อมูล ซึ่งหมายความว่ามี ข้อความเหตุการณ์ผ่านเข้ามาสำหรับการสมัครใช้บริการของคุณ หากคุณไม่เห็นกิจกรรมใดๆ ให้รอสักครู่ หรือสร้างเหตุการณ์เพิ่มอีก
- คลิก ดูข้อความเพื่อเปิดแผงข้อความ
- คลิกดึงเพื่อดูข้อความ ค่าเหล่านี้ควรสอดคล้องกับ การดำเนินการที่คุณใช้สร้างเหตุการณ์
นอกจากนี้ คุณยังสามารถดูข้อความใน Cloud Shell ด้วยคำสั่ง pull
พื้นฐาน ดังนี้
gcloud pubsub subscriptions pull subscription-id
ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทการสมัครใช้บริการ รวมถึงประเภทของเหตุการณ์ที่ส่งโดย SDM API และวิธีใช้ได้ที่เหตุการณ์
จัดการข้อความ
คุณควรรับทราบและลบข้อความออกเป็นประจำ เพื่อให้การสมัครใช้บริการสะอาดตาและหลีกเลี่ยงการส่งข้อความซ้ำถึงสมาชิกรายอื่น คุณสามารถลบข้อความการสมัครใช้บริการทั้งหมดออกอย่างถาวรได้ในส่วน "การสมัครใช้บริการ Pub/Sub" โดยทำดังนี้
ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub
- คลิกรหัสการสมัครใช้บริการ
- คุณรับทราบและลบถาวรได้หลายวิธี ดังนี้
- คลิก ดูข้อความเพื่อเปิดแผงข้อความ เลือกช่องทำเครื่องหมายเปิดใช้ข้อความการรับทราบ แล้วคลิกดึงเพื่อดูและรับทราบข้อความทั้งหมด
- คลิก ล้างข้อความเพื่อลบข้อความที่มีอยู่ทั้งหมดออกถาวรด้วยการตอบรับโดยไม่ต้องดู คลิกเผยแพร่เพื่อยืนยัน
นอกจากนี้ คุณยังลบข้อความถาวรใน Cloud Shell โดยใช้แฟล็ก --auto-ack
ด้วยคำสั่ง pull
พื้นฐานได้ดังนี้
gcloud pubsub subscriptions pull subscription-id --auto-ack
จัดการการสมัครใช้บริการ
การสมัครใช้บริการอาจกําหนดค่าได้หลายวิธี ดังที่อธิบายไว้ในการใช้พร็อพเพอร์ตี้การสมัครใช้บริการ
แม้ว่าวิธีที่คุณจะจัดการการสมัครรับข้อมูลและข้อความขึ้นอยู่กับคุณ แต่สำหรับแอปพลิเคชันเวอร์ชันที่ใช้งานจริง เราขอแนะนำให้ใช้บัญชีบริการสำหรับการตรวจสอบสิทธิ์ แทนที่จะใช้บัญชีผู้ใช้เหมือนที่คุณมีในคู่มือเริ่มใช้งานฉบับย่อนี้ แอปพลิเคชันหรือเครื่องเสมือนจะใช้บัญชีบริการ ไม่ใช่บุคคล และมีคีย์บัญชีเฉพาะของตนเอง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์บัญชีบริการด้วย Device Accessได้ที่เหตุการณ์