الاشتراك في الأحداث

الأحداث غير متزامنة وتتم إدارتها من خلال خدمة Google Cloud Pub/Sub، في موضوع واحد لكل Project. توفّر الأحداث تعديلات لجميع الأجهزة والهياكل، ويتم ضمان تلقّي الأحداث طالما أنّ المستخدم لم يُلغِ رمز الوصول ولم تنتهي صلاحية رسائل الأحداث .

الأحداث هي ميزة اختيارية لواجهة برمجة التطبيقات SDM API. ويمكن تنفيذها والتحقّق منها بسهولة باستخدام مشروعك على Google Cloud.

تفعيل الأحداث

قد تكون الأحداث مفعَّلة في Device Access Console. حدد مشروعك في وحدة التحكم، إذا لم تكن قد قمت بذلك بالفعل.

الانتقال إلى Device Access وحدة التحكّم

إذا سبق لك تفعيل الأحداث (على سبيل المثال، أثناء إنشاء المشروع)، يجب أن يحتوي حقل موضوع Pub/Sub في قسم معلومات المشروع على قيمة تُعرف باسم "رقم تعريف الموضوع" بالتنسيق التالي:

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

في حال عدم تفعيل الأحداث:

  1. انقر على رمز لموضوع Pub/Sub واختَر تعديل.
  2. ضَع علامة في المربّع تفعيل الأحداث وانقر على حفظ.
  3. يتم إنشاء معرّف موضوع لك بالشكل الموضّح أعلاه.

انسخ رقم تعريف الموضوع، ستحتاج إليه لإنشاء اشتراك في الموضوع حتى تتمكّن من retrieving event messages (استرداد رسائل الأحداث).

إنشاء اشتراك سحب

اشتراك السحب هو المكان الذي يقدم فيه المشترك طلبات إلى خادم النشر/الاشتراك للحصول على رسائل أحداث في قائمة الانتظار. هذه طريقة سريعة وسهلة للتأكّد من أنّه يتم إنشاء الأحداث لأجهزةك المعتمَدة.

افتح Cloud Shell لمشروعك على Google Cloud:

الانتقال إلى Google Cloud Shell

في موجه 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'

سيتم نشر الأحداث لجميع البُنى والأجهزة بعد طلب البيانات من واجهة برمجة التطبيقات هذا.

إنشاء أحداث

يتمّ إنشاء الأحداث لجميع تغييرات حقول السمات، وبعضها تلقائي، وبعضها يدوي.

على سبيل المثال، إذا تغيّرت درجة الحرارة المحيطة بالقرب من Nest Thermostat، سيتم تلقائيًا إرسال حدث لسمة درجة الحرارة مع قيمة ambientTemperatureCelsius جديدة.

لإنشاء تقرير يدويًا، يمكنك اتّباع أحد الإجراءَين التاليَين:

  1. تغيير حالة جهازك بشكلٍ يدوي، مثل تغيير وضع ترموستات Nest
  2. شغِّل حدثًا، مثل حركة أو شخص أو صوت على كاميرا Google Nest Cam داخلي.
  3. تنفيذ أمر جهاز باستخدام واجهة برمجة التطبيقات لمجموعة أدوات Smart Device Management

عرض الرسائل

يمكن الاطّلاع على رسائل الأحداث في مشروعك على Google Cloud في قسم "اشتراكات النشر/الاشتراك":

الانتقال إلى اشتراكات Google Cloud Pub/Sub

  1. انقر على رقم تعريف الاشتراك الذي أنشأته سابقًا.
  2. في شاشة تفاصيل الاشتراك، من المفترض أن يظهر لك نشاط الرسم البياني عدد الرسائل غير المُعتمَدة. يشير ذلك إلى أنّ رسائل الأحداث قد تم إرسالها لاشتراكك. إذا لم يظهر لك أي نشاط، يُرجى الانتظار قليلاً أو إنشاء بعض الأحداث الإضافية.
  3. انقر على عرض الرسائل لتحميل لوحة الرسائل.
  4. انقر على PULL لعرض الرسائل. ويجب أن تتطابق مع الإجراءات التي استخدمتها لإنشاء الأحداث.

يمكن أيضًا عرض الرسائل في Cloud Shell باستخدام الأمر pull الأساسي:

gcloud pubsub subscriptions pull subscription-id

لمزيد من المعلومات حول أنواع الاشتراكات وأنواع الأحداث المُرسَلة من خلال واجهة برمجة تطبيقات SDM وكيفية استخدامها، يُرجى الاطّلاع على الأحداث.

إدارة الرسائل

يجب الردّ على الرسائل وحذفها بانتظام للحفاظ على اشتراك خالي من الرسائل المكرّرة وتجنُّب إرسالها إلى المشتركين الآخرين. يمكن إزالة جميع رسائل الاشتراك يدويًا من قسم "اشتراكات النشر/الاشتراكات" على النحو التالي:

الانتقال إلى اشتراكات Google Cloud Pub/Sub

  1. انقر على رقم تعريف الاشتراك.
  2. هناك بضع طرق للاعتراض على المحتوى وحذفه:
    1. انقر على عرض الرسائل لتحميل لوحة الرسائل. ضَع علامة في مربّع الاختيار تفعيل رسائل التأكيد وانقر على سحب لعرض جميع الرسائل والردّ عليها.
    2. انقر على إزالة الرسائل لإزالة جميع الرسائل الحالية من خلال الموافقة عليها بدون عرضها. انقر على إزالة للتأكيد.

يمكن أيضًا محو الرسائل في Cloud Shell باستخدام العلامة --auto-ack مع أمر pull أساسي:

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

إدارة الاشتراكات

يمكن إعداد الاشتراكات بطرق مختلفة، كما هو موضّح في استخدام خصائص الاشتراك.

على الرغم من أنّ طريقة إدارة الاشتراكات والرسائل متروكة لك، ننصحك باستخدام حسابات الخدمة في التطبيقات المخصّصة للإصدار العلني من أجل مصادقة المستخدمين بدلاً من استخدام حساب مستخدم كما فعلت حتى الآن في هذا الدليل السريع لبدء الاستخدام. يستخدم تطبيق أو جهاز افتراضي حساب الخدمة، وليس شخصًا، ويحتوي على مفتاح حساب فريد.

لمزيد من المعلومات عن مصادقة حساب الخدمة باستخدام Device Access، يُرجى الاطّلاع على الأحداث.