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

الأحداث غير متزامنة وتتم إدارتها من خلال خدمة 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 (استرداد رسائل الأحداث).

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

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

افتح 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، سيتم تلقائيًا إرسال حدث للسمة Temperature مع قيمة ambientTemperatureCelsius جديدة.

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

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

عرض الرسائل

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

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

  1. انقر على رقم تعريف الاشتراك الذي أنشأته سابقًا.
  2. في شاشة تفاصيل الاشتراك، من المفترض أن يظهر لك نشاط الرسم البياني عدد الرسائل غير المُعتمَدة. يشير ذلك إلى أنّ رسائل الأحداث قد تم إرسالها لاشتراكك. إذا لم يظهر لك أي نشاط، يُرجى الانتظار قليلاً أو إنشاء بعض الأحداث الإضافية.
  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 باستخدام العلامة --auto-ack مع أمر pull أساسي:

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

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

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

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

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