สมัครรับข้อมูลกิจกรรม

เหตุการณ์เป็นแบบอะซิงโครนัสและจัดการโดย Google Cloud Pub/Sub ในหัวข้อเดียวต่อ Projectเหตุการณ์จะให้ข้อมูลอัปเดตสำหรับอุปกรณ์และโครงสร้างทั้งหมด และรับประกันการรับเหตุการณ์ ตราบใดที่ผู้ใช้ยังไม่ได้เพิกถอนโทเค็นเพื่อการเข้าถึงและข้อความเหตุการณ์ยังไม่หมดอายุ

เหตุการณ์เป็นฟีเจอร์ที่ไม่บังคับของ SDM API ซึ่งสามารถนำไปใช้และยืนยันได้ง่ายๆ โดยใช้โปรเจ็กต์ Google Cloud

เปิดใช้กิจกรรม

คุณอาจเปิดใช้เหตุการณ์ใน Device Access คอนโซล เลือกโปรเจ็กต์ใน Console หากยังไม่ได้เลือก

ไปที่ Device Access คอนโซล

หากคุณเปิดใช้เหตุการณ์แล้ว (เช่น ระหว่างการสร้างโปรเจ็กต์) ช่องหัวข้อ Pub/Sub ในส่วนเปิดใช้หัวข้อ Pubsub สำหรับเหตุการณ์ ควรมีค่าอยู่แล้ว ซึ่งเรียกว่ารหัสหัวข้อ ในรูปแบบเดิมคือ

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

หากต้องการย้ายข้อมูลจากหัวข้อที่โฮสต์โดย Google ให้ปิดใช้หัวข้อ Pub/Sub ที่โฮสต์โดย Google ใน Device Access คอนโซลและเปิดใช้เหตุการณ์อีกครั้งโดยใช้ Pub/Sub ที่โฮสต์ด้วยตนเอง ซึ่งสร้างขึ้นในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ Google ของคุณเอง การย้ายข้อมูลการกำหนดค่าหัวข้อ Pub/Sub จะไม่ทำให้โทเค็นการเข้าถึงของผู้ใช้ที่มีอยู่หรือสิทธิ์ OAuth ใช้งานไม่ได้

คุณสามารถสร้างหรือเปลี่ยนหัวข้อ Pub/Sub ที่โฮสต์ด้วยตนเองในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ Google Cloud ของคุณเองได้ และจะขึ้นอยู่กับราคาของ Google Cloud Pub/Sub มาตรฐาน (ซึ่งรวมถึงรุ่นฟรี 10 GB ต่อเดือน)

สร้างหัวข้อ Pub/Sub โดยทำดังนี้

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

ให้สิทธิ์ SDM API ที่จำเป็นเพื่อเข้าถึงและ เผยแพร่ข้อมูลเหตุการณ์สำหรับรหัสหัวข้อของโปรเจ็กต์

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

รูปแบบของรหัสหัวข้อที่สร้างใหม่จะเป็นดังนี้

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

จดรหัสหัวข้อไว้ คุณจะต้องใช้รหัสดังกล่าวเพื่อเปิดใช้เหตุการณ์ให้เสร็จสมบูรณ์ ดูข้อมูลเพิ่มเติมได้ที่ สร้างหัวข้อ

วิธีเปิดใช้กิจกรรม (หรือย้ายข้อมูลจากหัวข้อที่ Google โฮสต์)

  1. หากสร้างโปรเจ็กต์ใหม่ ให้เลือกเปิดใช้เหตุการณ์ แล้วคลิกสร้างโปรเจ็กต์ หากจะย้ายข้อมูลโปรเจ็กต์ที่มีอยู่จากหัวข้อที่โฮสต์โดย Google ให้ปิดใช้หัวข้อ Pub/Sub ที่มีอยู่ในหน้าจอข้อมูลของโปรเจ็กต์ก่อน
  2. คลิกไอคอน สำหรับหัวข้อ Pub/Sub แล้วเลือกเปิดใช้เหตุการณ์ด้วยหัวข้อ PubSub (หรือแก้ไขหัวข้อปัจจุบัน )
  3. ป้อนรหัสหัวข้อ Pub/Sub ที่โฮสต์ด้วยตนเองซึ่งคุณสร้างไว้ก่อนหน้านี้

คัดลอกรหัสหัวข้อ คุณจะต้องใช้รหัสนี้เพื่อสร้างการสมัครรับข้อมูลในหัวข้อเพื่อให้ดึงข้อความเหตุการณ์ได้

สร้างการสมัครใช้บริการแบบดึงข้อมูล

การสมัครรับข้อมูลแบบดึงข้อมูลเองคือการที่ผู้สมัครรับข้อมูลเริ่มส่งคำขอไปยังเซิร์ฟเวอร์ Pub/Sub สำหรับข้อความเหตุการณ์ที่อยู่ในคิว วิธีนี้เป็นวิธีที่ง่ายและรวดเร็วในการยืนยันว่า มีการสร้างเหตุการณ์สำหรับอุปกรณ์ที่ได้รับอนุญาต

เปิด Cloud Shell สำหรับโปรเจ็กต์ Google Cloud โดยทำดังนี้

ไปที่ Google Cloud Shell

ที่พรอมต์ของ Cloud Shell ให้เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างการสมัครใช้บริการแบบดึง สำหรับหัวข้อ โดยใช้subscription-idที่คุณต้องการ และรหัสหัวข้อที่ไม่ซ้ำกัน

gcloud pubsub subscriptions create subscription-id --topic=projects/gcp-project-name/subscriptions/topic-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 ใหม่

หากต้องการสร้างด้วยตนเอง ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้

  1. เปลี่ยนสถานะของอุปกรณ์ด้วยตนเอง เช่น เปลี่ยนโหมดของ ตัวควบคุมอุณหภูมิ Nest
  2. ทริกเกอร์เหตุการณ์ เช่น การเคลื่อนไหว คน หรือเสียงใน Google Nest Cam Indoor
  3. เรียกใช้คำสั่งของอุปกรณ์ โดยใช้ SDM API

ดูข้อความ

คุณดูข้อความเหตุการณ์ได้ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google ในส่วนการสมัครใช้บริการ Pub/Sub ดังนี้

ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub

  1. คลิกรหัสการสมัครใช้บริการที่คุณสร้างไว้ก่อนหน้านี้
  2. ในหน้าจอรายละเอียดการสมัครใช้บริการ คุณควรเห็นกิจกรรมสำหรับแผนภูมิจำนวนข้อความที่ยังไม่ได้รับทราบ ซึ่งหมายความว่าคุณได้รับการแจ้งเตือนเกี่ยวกับกิจกรรม ผ่านการสมัครใช้บริการแล้ว หากไม่เห็นกิจกรรมใดๆ โปรดรอสักครู่ หรือสร้างเหตุการณ์เพิ่มเติม
  3. คลิก ดูข้อความเพื่อเปิดแผงข้อความ
  4. คลิกดึงเพื่อดูข้อความ ซึ่งควรสอดคล้องกับการดำเนินการ ที่คุณใช้สร้างเหตุการณ์

นอกจากนี้ คุณยังดูข้อความใน Cloud Shell ได้ด้วยคำสั่ง pull พื้นฐาน ดังนี้

gcloud pubsub subscriptions pull subscription-id

ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทการสมัครใช้บริการ รวมถึงประเภทของเหตุการณ์ที่ SDM API ส่งและวิธีใช้ได้ที่เหตุการณ์

จัดการข้อความ

คุณควรรับทราบและลบข้อความเป็นประจำเพื่อให้การติดตามสะอาดและหลีกเลี่ยงการส่งข้อความที่ซ้ำกันไปยังผู้ติดตามรายอื่นๆ คุณลบข้อความการสมัครใช้บริการทั้งหมดได้ด้วยตนเองในส่วนการสมัครใช้บริการ Pub/Sub โดยทำดังนี้

ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub

  1. คลิกรหัสการสมัครใช้บริการ
  2. คุณรับทราบและล้างข้อมูลได้หลายวิธี ดังนี้
    1. คลิก ดูข้อความเพื่อเปิดแผงข้อความ เลือกช่องทำเครื่องหมายเปิดใช้ข้อความ ACK แล้วคลิก PULL เพื่อดูและรับทราบข้อความทั้งหมด
    2. คลิก ล้างข้อมูล ข้อความเพื่อล้างข้อมูลข้อความที่มีอยู่ทั้งหมดโดยการรับทราบโดยไม่ต้อง ดูข้อความ คลิกPURGEเพื่อยืนยัน

นอกจากนี้ คุณยังล้างข้อความใน Cloud Shell ได้โดยใช้แฟล็ก --auto-ack กับคำสั่ง pull พื้นฐาน

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

จัดการการสมัครใช้บริการ

คุณกำหนดค่าการสมัครใช้บริการได้หลายวิธีตามที่อธิบายไว้ในการใช้พร็อพเพอร์ตี้การสมัครใช้บริการ

แม้ว่าคุณจะจัดการการติดตามและข้อความอย่างไรก็ได้ แต่สำหรับแอปพลิเคชันเวอร์ชันที่ใช้งานจริง เราขอแนะนำให้คุณใช้บัญชีบริการสำหรับการตรวจสอบสิทธิ์ แทนที่จะใช้บัญชีผู้ใช้เหมือนที่ผ่านมาในคู่มือเริ่มต้นฉบับย่อนี้ แอปพลิเคชันหรือเครื่องเสมือนจะใช้บัญชีบริการ ไม่ใช่บุคคล และมีคีย์บัญชีที่ไม่ซ้ำกันของตัวเอง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์บัญชีบริการด้วย Device Accessได้ที่ เหตุการณ์