الأحداث غير متزامنة وتديرها خدمة Google Cloud Pub/Sub، وذلك في موضوع واحد لكل Project. توفّر الأحداث تحديثات لجميع الأجهزة والتركيبات، ويتم ضمان تلقّي الأحداث ما دام رمز الدخول لم يتم إبطاله من قِبل المستخدم ولم تنتهِ صلاحية رسائل الأحداث.
الأحداث هي ميزة اختيارية في واجهة برمجة التطبيقات SDM API. ويمكن تنفيذها والتحقّق منها بسهولة باستخدام مشروعك على Google Cloud.
تفعيل الأحداث
يمكن تفعيل الأحداث في Device Access وحدة التحكّم. اختَر مشروعك في وحدة التحكّم، إذا لم يسبق لك ذلك.
الانتقال إلى Device Access وحدة التحكّم
إذا سبق لك تفعيل الأحداث (على سبيل المثال، أثناء إنشاء مشروع)، من المفترض أن يتضمّن حقل موضوع Pub/Sub في قسم تفعيل موضوع Pub/Sub للأحداث قيمة، تُعرف باسم معرّف الموضوع، بالتنسيق القديم التالي:
projects/sdm-prod/topics/enterprise-project-id
للانتقال من موضوع مستضاف على Google، عليك إيقاف موضوع Pub/Sub المستضاف على Google في Device Access وحدة التحكّم وإعادة تفعيل الأحداث باستخدام موضوع Pub/Sub مستضاف ذاتيًا تم إنشاؤه في مشروع على السحابة الإلكترونية الخاص بك على Google Cloud. لا تؤدي عملية نقل إعدادات موضوع Pub/Sub إلى إبطال رموز الدخول الحالية للمستخدمين أو أذونات OAuth.
يمكن إنشاء مواضيع Pub/Sub المستضافة ذاتيًا أو تغييرها في مشروع Google Cloud الخاص بك، وهي تخضع لتسعير Google Cloud Pub/Sub العادي (الذي يتضمّن فئة مجانية بسعة 10 غيغابايت شهريًا).
أنشئ موضوع 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)، اتّبِع الخطوات التالية:
- في حال إنشاء مشروع جديد، انقر على تفعيل الأحداث ثم على إنشاء مشروع. في حال نقل مشروع حالي من موضوع مستضاف على Google، عليك أولاً إيقاف موضوع Pub/Sub الحالي في شاشة معلومات المشروع.
- انقر على رمز موضوع Pub/Sub واختَر تفعيل الأحداث باستخدام موضوع Pub/Sub (أو تعديل الموضوع الحالي).
- أدخِل رقم تعريف موضوع 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'سيتم نشر أحداث جميع المباني والأجهزة بعد تنفيذ طلب البيانات من واجهة برمجة التطبيقات هذا.
إنشاء أحداث
يتم إنشاء أحداث لجميع تغييرات حقول السمات، وبعضها تلقائي وبعضها يدوي.
على سبيل المثال، إذا تغيّرت درجة الحرارة المحيطة بالقرب من
جهاز Nest Thermostat، سيتم تلقائيًا إرسال حدث
Temperature مع قيمة ambientTemperatureCelsius جديدة.
لإنشاء رمز يدويًا، يمكنك اتّخاذ أحد الإجراءَين التاليَين:
- تغيير حالة جهازك يدويًا، مثل تغيير وضع ترموستات Nest
- تفعيل حدث، مثل الحركة أو رصد شخص أو صوت على Google Nest Cam Indoor
- تنفيذ أمر جهاز باستخدام واجهة برمجة التطبيقات SDM API
عرض الرسائل
يمكن الاطّلاع على رسائل الأحداث في مشروعك على Google Cloud، وذلك في قسم "اشتراكات Pub/Sub" باتّباع الخطوات التالية:
الانتقال إلى "الاشتراكات" في Google Cloud Pub/Sub
- انقر على رقم تعريف الاشتراك الذي أنشأته سابقًا.
- في شاشة تفاصيل الاشتراك، من المفترض أن يظهر لك النشاط في الرسم البياني عدد الرسائل غير المستلمة. يشير ذلك إلى أنّ رسائل الأحداث قد وصلت إليك من خلال اشتراكك. إذا لم يظهر لك أي نشاط، انتظِر قليلاً أو أنشئ المزيد من الأحداث.
- انقر على عرض الرسائل لفتح لوحة الرسائل.
- انقر على سحب لعرض الرسائل. ويجب أن تتطابق مع الإجراءات التي استخدمتها لإنشاء الأحداث.
يمكن أيضًا عرض الرسائل في Cloud Shell باستخدام الأمر الأساسي pull:
gcloud pubsub subscriptions pull subscription-idلمزيد من المعلومات عن أنواع الاشتراكات وأنواع الأحداث التي ترسلها واجهة برمجة التطبيقات SDM وكيفية استخدامها، يُرجى الاطّلاع على الأحداث.
إدارة الرسائل
يجب تأكيد استلام الرسائل وإزالتها بانتظام للحفاظ على اشتراك نظيف وتجنُّب إرسال الرسائل المكرّرة إلى المشتركين الآخرين. يمكن حذف جميع رسائل الاشتراك يدويًا في قسم "اشتراكات Pub/Sub" باتّباع الخطوات التالية:
الانتقال إلى "الاشتراكات" في Google Cloud Pub/Sub
- انقر على معرّف الاشتراك.
- هناك بضع طرق للإقرار بالبيانات ومحو سجلّها:
- انقر على عرض الرسائل لفتح لوحة الرسائل. ضَع علامة في مربّع الاختيار تفعيل رسائل التأكيد وانقر على سحب لعرض جميع الرسائل وتأكيد استلامها.
- انقر على إزالة نهائية للرسائل لإزالة جميع الرسائل الحالية نهائيًا من خلال تأكيد الإجراء بدون عرض الرسائل. انقر على PURGE للتأكيد.
يمكن أيضًا إزالة الرسائل نهائيًا في Cloud Shell باستخدام العلامة --auto-ack مع الأمر الأساسي pull:
gcloud pubsub subscriptions pull subscription-id --auto-ackإدارة الاشتراكات
يمكن ضبط الاشتراكات بطرق مختلفة، كما هو موضّح في مقالة استخدام خصائص الاشتراك.
مع أنّ طريقة إدارة الاشتراكات والرسائل تعود إليك، ننصحك باستخدام حسابات الخدمة للمصادقة في تطبيق مخصّص للإنتاج، بدلاً من حساب مستخدم كما فعلت حتى الآن في دليل البدء السريع هذا. يتم استخدام حساب الخدمة من خلال تطبيق أو آلة افتراضية، وليس من خلال شخص، وله مفتاح حساب فريد خاص به.
لمزيد من المعلومات حول مصادقة حساب الخدمة باستخدام Device Access، يُرجى الاطّلاع على الأحداث.