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

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

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

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

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

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

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

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

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

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

สร้างหัวข้อ 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

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

วิธีเปิดใช้เหตุการณ์

  1. เลือกเปิดใช้เหตุการณ์ แล้วคลิกสร้างโปรเจ็กต์
  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 เปลี่ยนแปลง ระบบจะส่งเหตุการณ์สำหรับลักษณะTemperature พร้อมค่า ambientTemperatureCelsius ใหม่โดยอัตโนมัติ

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

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

ดูข้อความ

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

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

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

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

gcloud pubsub subscriptions pull subscription-id

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

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

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

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

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

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

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

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

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

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

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