توضّح هذه الصفحة كيفية استخدام Google Workspace Events API لإنشاء اشتراك في أحد موارد Google Workspace. يتيح اشتراك Google Workspace لتطبيقك تلقّي معلومات حول أحداث Google Workspace التي تمثّل تغييرات في أحد موارد Google Workspace. للتعرّف على المراجع وأنواع الأحداث التي تتوافق معها "واجهة برمجة تطبيقات أحداث Google Workspace"، يمكنك الاطّلاع على نظرة عامة على "واجهة برمجة تطبيقات أحداث Google Workspace".
تتضمّن هذه الصفحة الخطوات التالية لإنشاء اشتراك في Google Workspace:
- إعداد البيئة
- إنشاء موضوع Google Cloud Pub/Sub والاشتراك فيه استخدِم هذا المستند كنقطة نهاية لتلقّي أحداث Google Workspace.
- استدعِ طريقة
createفيSubscriptionضمن "واجهة برمجة تطبيقات أحداث Google Workspace". - اختبِر اشتراكك في Google Workspace للتأكّد من أنّ موضوع Pub/Sub يتلقّى الأحداث التي اشتركت فيها.
- يمكنك اختياريًا ضبط طريقة إرسال الأحداث إلى نقطة نهاية لتطبيقك، حتى يتمكّن تطبيقك من معالجة الحدث واتخاذ الإجراءات إذا لزم الأمر.
المتطلبات الأساسية
برمجة التطبيقات
- لاستخدام أوامر Google Cloud CLI الواردة في هذا الدليل، اتّبِع الخطوات التالية:
- ثبِّت Google Cloud CLI.
-
لإعداد
gcloudCLI، نفِّذ الرمز التالي:
gcloud init
- مشروع "برمجة التطبيقات":
- استخدِم مشروعك على Google Cloud بدلاً من المشروع التلقائي الذي يتم إنشاؤه تلقائيًا بواسطة "برمجة تطبيقات Google".
- بالنسبة إلى جميع النطاقات التي أضفتها لضبط شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth، عليك أيضًا إضافة النطاقات إلى ملف
appsscript.jsonفي مشروع برمجة تطبيقات. على سبيل المثال، إذا حدّدت النطاقchat.messages، أضِف ما يلي: - فعِّل
خدمة
Google Workspace Eventsالمتقدّمة.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
- مشروع Google Cloud تم تفعيل الفوترة فيه للاشتراك في Chat، يجب أيضًا تفعيل Chat API في مشروعك على السحابة الإلكترونية وتعديل حقول اسم التطبيق وعنوان URL للصورة الرمزية والوصف. لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat.
-
يتطلّب ذلك المصادقة ونطاق تفويض مناسب لكل نوع حدث في الاشتراك:
- يتطلّب عادةً مصادقة المستخدم من خلال شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth التي تم ضبطها للتطبيق. عند ضبط شاشة طلب الموافقة، عليك تحديد نطاق لدعم كل نوع من أنواع الأحداث في الاشتراك. لضبط شاشة طلب الموافقة وتحديد النطاقات المطلوبة، يُرجى الاطّلاع على اختيار النطاقات.
- للاشتراك في حدث Chat كتطبيق Chat، يجب المصادقة على التطبيق من خلال موافقة المشرف لمرة واحدة.
Python
- الإصدار 3.6 أو الإصدارات الأحدث من Python
- أداة إدارة الحِزم pip
- أحدث مكتبات برامج Google للغة Python لتثبيتها أو تعديلها، نفِّذ الأمر التالي
في واجهة سطر الأوامر:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- لاستخدام أوامر Google Cloud CLI الواردة في هذا الدليل، اتّبِع الخطوات التالية:
- ثبِّت Google Cloud CLI.
-
لإعداد
gcloudCLI، نفِّذ الرمز التالي:
gcloud init
- مشروع Google Cloud تم تفعيل الفوترة فيه للاشتراك في Chat، يجب أيضًا تفعيل Chat API في مشروعك على السحابة الإلكترونية وتعديل حقول اسم التطبيق وعنوان URL للصورة الرمزية والوصف. لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat.
-
يتطلّب المصادقة ونطاق إذن مناسب لكل نوع حدث في الاشتراك:
- يتطلّب عادةً مصادقة المستخدم من خلال شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth التي تم ضبطها للتطبيق. عند ضبط شاشة طلب الموافقة، عليك تحديد نطاق لدعم كل نوع من أنواع الأحداث في الاشتراك. لضبط شاشة طلب الموافقة وتحديد النطاقات المطلوبة، يُرجى الاطّلاع على اختيار النطاقات.
- للاشتراك في حدث Chat كتطبيق Chat، يجب المصادقة على التطبيق من خلال موافقة المشرف لمرة واحدة.
إعداد البيئة
يوضّح القسم التالي كيفية إعداد بيئتك قبل إنشاء اشتراك في Google Workspace.
تفعيل واجهة Google Workspace Events API وGoogle Cloud Pub/Sub API
قبل استخدام واجهات Google APIs، عليك تفعيلها في مشروع على Google Cloud. يمكنك تفعيل واجهة برمجة تطبيق واحدة أو أكثر في مشروع واحد على Google Cloud.Google Cloud Console
في Google Cloud Console، افتح مشروع Google Cloud لتطبيقك وفعِّل واجهة Google Workspace Events API وواجهة Pub/Sub API باتّباع الخطوات التالية:
gcloud
في دليل العمل، سجِّل الدخول إلى حسابك على Google:
gcloud auth loginاضبط مشروعك على مشروع على السحابة الإلكترونية لتطبيقك:
gcloud config set project PROJECT_IDاستبدِل
PROJECT_IDبـ رقم تعريف المشروع لمشروع على السحابة الإلكترونية الخاص بتطبيقك.فعِّل واجهة Google Workspace Events API وواجهة Google Cloud Pub/Sub API:
gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
إنشاء بيانات اعتماد معرّف عميل OAuth
اختَر نوع التطبيق للحصول على تعليمات محدّدة حول كيفية إنشاء معرّف عميل OAuth:
تطبيق الويب
- في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.
- انقر على إنشاء عميل.
- انقر على نوع التطبيق > تطبيق الويب.
- في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
- أضِف معرّفات URI معتمَدة ذات صلة بتطبيقك:
- التطبيقات من جهة العميل (JavaScript): ضمن مصادر JavaScript المسموح بها، انقر على إضافة معرّف الموارد المنتظم (URI). بعد ذلك، أدخِل معرّف URI لاستخدامه في طلبات المتصفّح. يحدّد هذا الحقل النطاقات التي يمكن لتطبيقك إرسال طلبات بيانات من واجهة برمجة التطبيقات منها إلى خادم OAuth 2.0.
- التطبيقات من جهة الخادم (Java وPython وغير ذلك): ضمن معرّفات الموارد المنتظمة (URI) المعتمَدة لإعادة التوجيه، انقر على إضافة معرّف URI. بعد ذلك، أدخِل معرّف موارد منتظم (URI) لنقطة نهاية يمكن لخادم OAuth 2.0 إرسال الردود إليها.
- انقر على إنشاء.
تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن معرّفات عميل OAuth 2.0.
يُرجى العِلم أنّه لا يتم استخدام أسرار العملاء لتطبيقات الويب.
Android
- في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.
- انقر على إنشاء عميل.
- انقر على نوع التطبيق > Android.
- في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
- في حقل اسم الحزمة، أدخِل اسم الحزمة من ملف
AndroidManifest.xml. - في الحقل الملف المرجعي لشهادة SHA-1، أدخِل الملف المرجعي لشهادة SHA-1 الذي تم إنشاؤه.
- انقر على إنشاء.
تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضِمن "معرّفات عملاء OAuth 2.0".
iOS
- في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.
- انقر على إنشاء عميل.
- انقر على نوع التطبيق > iOS.
- في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
- في حقل معرّف الحزمة، أدخِل معرّف الحزمة كما هو مُدرَج في ملف
Info.plistالخاص بالتطبيق. - اختياري: إذا كان تطبيقك يظهر في Apple App Store، أدخِل رقم تعريف App Store.
- اختياري: في حقل معرّف الفريق، أدخِل السلسلة الفريدة المكوّنة من 10 أحرف والتي تنشئها Apple وتعيّنها لفريقك.
- انقر على إنشاء.
تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضِمن "معرّفات عملاء OAuth 2.0".
تطبيق Chrome
- في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.
- انقر على إنشاء عميل.
- انقر على نوع التطبيق > إضافة Chrome.
- في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
- في حقل معرّف السلعة، أدخِل سلسلة المعرّف الفريد المكوّنة من 32 حرفًا لتطبيقك. يمكنك العثور على قيمة رقم التعريف هذا في عنوان URL لتطبيقك على "سوق Chrome الإلكتروني" وفي لوحة بيانات المطوّر في "سوق Chrome الإلكتروني".
- انقر على إنشاء.
تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضِمن "معرّفات عملاء OAuth 2.0".
تطبيق متوافق مع الكمبيوتر المكتبي
- في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.
- انقر على إنشاء عميل.
- انقر على نوع التطبيق > تطبيق متوافق مع الكمبيوتر المكتبي.
- في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
- انقر على إنشاء.
تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضِمن "معرّفات عملاء OAuth 2.0".
أجهزة التلفزيون وأجهزة الإدخال المحدودة
- في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.
- انقر على إنشاء عميل.
- انقر على نوع التطبيق > أجهزة التلفزيون والأجهزة ذات الإدخال المحدود.
- في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
- انقر على إنشاء.
تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضِمن "معرّفات عملاء OAuth 2.0".
Universal Windows Platform (منصة Windows العالمية)
- في Google API Console، انتقِل إلى "القائمة" > > العملاء.
- انقر على إنشاء عميل.
- انقر على نوع التطبيق > نظام التشغيل Windows العالمي (UWP).
- في حقل "الاسم"، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google API Console.
- في حقل "رقم تعريف المتجر"، أدخِل قيمة رقم تعريف تطبيقك الفريد في Microsoft Store والمكوّن من 12 حرفًا. يمكنك العثور على هذا المعرّف في عنوان URL لتطبيقك على Microsoft Store وفي Partner Center.
- انقر على إنشاء.
تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضِمن "معرّفات عملاء OAuth 2.0".
تنزيل ملف JSON الخاص بسرّ العميل
ملف سر العميل هو تمثيل بتنسيق JSON لبيانات اعتماد معرّف عميل OAuth التي يمكن لتطبيقك الرجوع إليها عند تقديم بيانات الاعتماد.
في Google API Console، انتقِل إلى القائمة > واجهات برمجة التطبيقات والخدمات > بيانات الاعتماد.
ضمن معرّفات عميل OAuth 2.0، انقر على معرّف العميل الذي أنشأته.
انقر على تنزيل ملف JSON.
احفظ الملف باسم
credentials.json.
إنشاء موضوع Pub/Sub والاشتراك فيه
في هذا القسم، ستنشئ موضوعًا على Pub/Sub واشتراكًا في هذا الموضوع. يعمل موضوع Pub/Sub كنقطة نهاية للإشعارات يتلقّى فيها اشتراكك في Google Workspace الأحداث.
لمزيد من المعلومات حول إنشاء مواضيع Pub/Sub وإدارتها، يُرجى الاطّلاع على مستندات Pub/Sub.
لإنشاء موضوع Pub/Sub والاشتراك فيه، اتّبِع الخطوات التالية:
وحدة تحكّم Google API
في Google API Console، انتقِل إلى صفحة Pub/Sub:
الانتقال إلى Google Cloud Pub/Sub
تأكَّد من اختيار مشروع على السحابة الإلكترونية لتطبيقك.
انقر على إنشاء موضوع واتّبِع الخطوات التالية:
- أدخِل اسمًا لموضوعك، مثل
workspace-events-topic. - اترك المربّع بجانب إضافة اشتراك تلقائي محدّدًا. تسمّي خدمة Pub/Sub هذا الاشتراك التلقائي بشكل مشابه لاسم الموضوع، مثل
workspace-events-topic-sub. - اختياري: عدِّل أو اضبط خصائص إضافية للموضوع.
- أدخِل اسمًا لموضوعك، مثل
انقر على إنشاء. يتم تنسيق اسم الموضوع الكامل على النحو التالي:
projects/PROJECT_ID/topics/TOPIC_ID. استخدِم هذا الاسم الكامل في خطوة لاحقة.امنح الإذن بنشر رسائل Pub/Sub في موضوعك:
- في صفحة الموضوع، انتقِل إلى اللوحة الجانبية وافتح علامة التبويب الأذونات.
- انقر على إضافة مدير.
- في حقل إضافة مستخدمين رئيسيين، أضِف حساب الخدمة لتطبيق Google Workspace الذي يرسل الأحداث إلى اشتراكك:
- بالنسبة إلى أحداث Chat:
- بالنسبة إلى تطبيقات Chat (التي تم إنشاؤها كإضافات في Google Workspace وتوسّع نطاق Chat)، استخدِم عنوان البريد الإلكتروني لحساب الخدمة في صفحة إعدادات Chat API. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat يستخدم Pub/Sub.
- بالنسبة إلى تطبيقات Chat التي ليست إضافات Google Workspace، استخدِم
chat-api-push@system.gserviceaccount.com. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat يستخدم Pub/Sub.
- بالنسبة إلى أحداث Drive،
drive-api-event-push@system.gserviceaccount.com. - بالنسبة إلى أحداث Meet،
meet-api-event-push@system.gserviceaccount.com.
- بالنسبة إلى أحداث Chat:
- في قائمة إسناد الأدوار، انقر على
Pub/Sub Publisher. - انقر على حفظ. قد يستغرق تعديل الأذونات الخاصة بموضوعك بضع دقائق.
gcloud
في مشروعك على السحابة الإلكترونية، أنشئ موضوعًا من خلال تنفيذ الأمر التالي:
gcloud pubsub topics create TOPIC_IDاستبدِل
TOPIC_IDبمعرّف فريد لموضوعك، مثلworkspace-events-topic.تعرض النتيجة اسم الموضوع الكامل بالتنسيق
projects/PROJECT_ID/topics/TOPIC_ID. دوِّن الاسم وتأكَّد من أنّ قيمة PROJECT_ID هي رقم تعريف مشروع على السحابة الإلكترونية لتطبيقك. استخدِم اسم الموضوع في الخطوة التالية ولإنشاء اشتراك Google Workspace لاحقًا.امنح الإذن بنشر الرسائل في موضوعك باتّباع الخطوات التالية:
gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'غيِّر القيم في السلسلة على الشكل التالي:
TOPIC_NAME: اسم الموضوع الكامل، وهو الناتج من الخطوة السابقة. تم تنسيقه على النحو التالي:projects/PROJECT_ID/topics/TOPIC_ID.GOOGLE_WORKSPACE_APPLICATION: تطبيق Google Workspace الذي يجب أن يرسل الأحداث إلى اشتراكك:- لتلقّي أحداث من Chat، استخدِم أحد حسابات الخدمة التالية:
- بالنسبة إلى تطبيقات Chat (التي تم إنشاؤها كإضافات في Google Workspace وتوسّع نطاق Chat)، استخدِم عنوان البريد الإلكتروني لحساب الخدمة في صفحة إعدادات Chat API. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat يستخدم Pub/Sub.
- بالنسبة إلى تطبيقات Chat التي ليست إضافات، استخدِم
chat-api-push@system.gserviceaccount.com. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat يستخدم Pub/Sub.
- لتلقّي إشعارات بشأن الأحداث من Drive، استخدِم
drive-api-event-push@system.gserviceaccount.com. - لتلقّي الأحداث من Meet، استخدِم
meet-api-event-push@system.gserviceaccount.com.
- لتلقّي أحداث من Chat، استخدِم أحد حسابات الخدمة التالية:
قد يستغرق تعديل أذونات موضوعك بضع دقائق.
أنشئ اشتراكًا في Pub/Sub للموضوع:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAMEغيِّر القيم في السلسلة على الشكل التالي:
SUBSCRIPTION_NAME: اسم اشتراكك، مثلworkspace-events-subscriptionTOPIC_NAME: اسم الموضوع الذي أنشأته في الخطوة السابقة
الاشتراك في أحد موارد Google Workspace
في هذا القسم، يمكنك الاشتراك في مرجع Google Workspace الذي تريد تتبُّع الأحداث فيه.
اختيار المرجع المستهدف وتحديده
في اشتراك Google Workspace، يكون المورد المستهدف هو مورد Google Workspace الذي تراقب الأحداث فيه. يتم تمثيل المرجع المستهدف في حقل targetResource الخاص بالاشتراك، ويتم تنسيقه باستخدام اسم المرجع الكامل. على سبيل المثال، بالنسبة إلى اشتراك يراقب مساحة Chat (spaces/AAAABBBBBBB)، تكون قيمة targetResource هي //chat.googleapis.com/spaces/AAAABBBBBBB.
تحديد مرجع مستهدف لـ Chat
| المورد المستهدف | التنسيق | القيود |
|---|---|---|
| مسافة |
حيث SPACE هو المعرّف في
اسم المورد الخاص بالمورد |
يجب أن يكون مستخدم Chat أو تطبيق Chat الذي يمنح الإذن بالاشتراك عضوًا في المساحة من خلال حسابه على Google Workspace أو حسابه على Google. يتوافق مع: |
| جميع المساحات الخاصة بمستخدم |
|
لا يتلقّى الاشتراك سوى أحداث المساحات التي يكون المستخدم عضوًا فيها من خلال Google Workspace أو حساب Google. تتيح هذه الميزة مصادقة المستخدم فقط. |
| المستخدم |
حيث USER هو المعرّف في
اسم المورد الخاص بالمورد |
لا يتلقّى الاشتراك سوى أحداث عن المستخدم الذي منح الإذن بالاشتراك. لا يمكن للمستخدم منح الإذن باشتراك نيابةً عن مستخدمين آخرين. تتيح هذه الميزة مصادقة المستخدم فقط. |
| العميل ( معاينة المطوّرين) |
حيث CUSTOMER هو رقم تعريف العميل. يمكنك أيضًا استخدام الاسم المستعار |
يتلقّى الاشتراك أحداثًا لجميع المساحات والمستخدمين الذين يديرهم نطاق العميل. يتيح فقط مصادقة التطبيق بموافقة المشرف. |
تحديد مرجع مستهدف في Drive
| المورد المستهدف | التنسيق | القيود (إن وُجدت) |
|---|---|---|
| ملف |
//drive.googleapis.com/files/FILE
حيث FILE هو المعرّف في
اسم المورد
لمورد Drive API |
يجب أن يكون لدى المستخدم الذي يمنح الإذن بالاشتراك إذن بشأن الملف ضمن الاشتراك بالنسبة إلى حدث الاشتراك. |
| مساحة تخزين سحابي مشتركة |
//drive.googleapis.com/drives/DRIVE
حيث DRIVE هو المعرّف في
اسم المورد
لمورد |
لا يتلقّى الاشتراك سوى أحداث العناصر في مساحة التخزين السحابي المشتركة التي يكون المستخدم عضوًا فيها من خلال حسابه على Google Workspace أو حسابه على Google. |
تحديد مصدر مستهدف لـ Meet
| المورد المستهدف | التنسيق | القيود (إن وُجدت) |
|---|---|---|
| مساحة الاجتماع | //meet.googleapis.com/spaces/SPACE
حيث SPACE هو المعرّف في
اسم المورد الخاص بمورد |
|
| المستخدم | //cloudidentity.googleapis.com/users/USER
حيث USER هو المعرّف في حقل
|
يتلقّى الاشتراك أحداثًا حول جميع مساحات الاجتماعات التي يملكها المستخدم. عادةً، يكون مالك مساحة الاجتماع هو أيضًا المنظّم لحدث في "تقويم Google" المرتبط بمساحة الاجتماع. |
إنشاء اشتراك في Google Workspace
لإنشاء اشتراك، استخدِم طريقة subscriptions.create في
واجهة برمجة التطبيقات Google Workspace Events API لإنشاء مورد
Subscription.
حدِّد الحقول التالية:
targetResource: هو حساب Google Workspace حدّدته في القسم السابق، وتم تنسيقه باستخدام اسم المورد الكامل.eventTypes: مصفوفة تتضمّن نوعًا واحدًا أو أكثر من أنواع الأحداث التي تريد تلقّيها بشأن المورد. على سبيل المثال، إذا كان تطبيقك يحتاج فقط إلى معرفة الرسائل الجديدة المنشورة في مساحة Chat، يمكن لتطبيقك الاشتراك في الأحداث المتعلقة بالرسائل التي تم إنشاؤها.notificationEndpoint: نقطة نهاية للإشعارات حيث يقدّم اشتراكك في Google Workspace الأحداث. استخدِم موضوع Pub/Sub الذي أنشأته في القسم السابق.-
payloadOptions: خيارات لتحديد مقدار بيانات الموارد التي سيتم تضمينها في حمولة الحدث. تؤثّر هذه الإعدادات في وقت انتهاء صلاحية اشتراكك. لمزيد من المعلومات، اطّلِع على بيانات الأحداث.
لإنشاء اشتراك في Google Workspace، اتّبِع الخطوات التالية:
برمجة التطبيقات
في مشروعك على "برمجة تطبيقات Google"، أنشئ ملف نص برمجي جديدًا باسم
createSubscriptionوأضِف الرمز التالي:function createSubscription() { // The Google Workspace resource to monitor for events. const targetResource = 'TARGET_RESOURCE'; // The types of events to receive. const eventTypes = [EVENT_TYPES]; // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. const pubsubTopic = 'TOPIC_NAME'; // Whether to include resource data or not. const resourceData = RESOURCE_DATA; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.create({ targetResource: targetResource, eventTypes: eventTypes, notificationEndpoint: { pubsubTopic: pubsubTopic, }, payloadOptions: { includeResource: resourceData } }); console.log(response); }غيِّر القيم في السلسلة على الشكل التالي:
-
TARGET_RESOURCE: مرجع Google Workspace الذي تشترك فيه، بتنسيق اسم المرجع الكامل. على سبيل المثال، للاشتراك في مساحة Chat تحمل رقم التعريفAAAABBBB، استخدِم//chat.googleapis.com/spaces/AAAABBBB. EVENT_TYPES: تمثّل هذه السمة نوعًا واحدًا أو أكثر من أنواع الأحداث التي تريد الاشتراك فيها في المورد المستهدف. يجب أن يكون التنسيق على شكل مصفوفة من السلاسل، مثل'google.workspace.chat.message.v1.created'.TOPIC_NAME: الاسم الكامل لموضوع Pub/Sub الذي أنشأته في مشروعك على السحابة الإلكترونية تم تنسيقه على النحو التالي:projects/PROJECT_ID/topics/TOPIC_ID.
RESOURCE_DATA: قيمة منطقية تحدّد ما إذا كان الاشتراك يتضمّن بيانات الموارد في الحمولة:-
True: يتضمّن جميع بيانات الموارد. للحدّ من الحقول التي سيتم تضمينها، أضِف الحقلfieldMaskوحدِّد حقل واحدًا على الأقل للمرجع الذي تم تغييره. تتيح الاشتراكات في موارد Chat فقط تضمين بيانات الموارد. False: يستبعد بيانات الموارد.
-
-
لإنشاء اشتراك Google Workspace، شغِّل الدالة
createSubscriptionفي مشروع "برمجة تطبيقات Google".
Python
في دليل العمل، أنشئ ملفًا باسم
create_subscription.pyوأضِف الرمز التالي:"""Create subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES) CREDENTIALS = flow.run_local_server() # The Google Workspace resource to monitor for events. TARGET_RESOURCE = 'TARGET_RESOURCE' # The types of events to receive. EVENT_TYPES = [EVENT_TYPES] # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. TOPIC = 'TOPIC_NAME' # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) BODY = { 'target_resource': TARGET_RESOURCE, 'event_types': EVENT_TYPES, 'notification_endpoint': {'pubsub_topic': TOPIC}, 'payload_options': {'include_resource': RESOURCE_DATA}, } response = service.subscriptions().create(body=BODY).execute() print(response)غيِّر القيم في السلسلة على الشكل التالي:
SCOPES: نطاق واحد أو أكثر من نطاقات OAuth التي تتوافق مع كل نوع من أنواع الأحداث للاشتراك. يتم تنسيقه كصفيف من السلاسل. لعرض نطاقات متعددة، افصل بينها بفواصل. على سبيل المثال،'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.-
TARGET_RESOURCE: مرجع Google Workspace الذي تشترك فيه، بتنسيق اسم المرجع الكامل. على سبيل المثال، للاشتراك في مساحة Chat تحمل رقم التعريفAAAABBBB، استخدِم//chat.googleapis.com/spaces/AAAABBBB. EVENT_TYPES: تمثّل هذه السمة نوعًا واحدًا أو أكثر من أنواع الأحداث التي تريد الاشتراك فيها في المورد المستهدف. يجب أن يكون التنسيق على شكل مصفوفة من السلاسل، مثل'google.workspace.chat.message.v1.created'.TOPIC_NAME: الاسم الكامل لموضوع Pub/Sub الذي أنشأته في مشروعك على السحابة الإلكترونية تم تنسيقه على النحو التالي:projects/PROJECT_ID/topics/TOPIC_ID.
RESOURCE_DATA: قيمة منطقية تحدّد ما إذا كان الاشتراك يتضمّن بيانات الموارد في الحمولة:-
True: يتضمّن جميع بيانات الموارد. للحدّ من الحقول التي سيتم تضمينها، أضِف الحقلfieldMaskوحدِّد حقل واحدًا على الأقل للمرجع الذي تم تغييره. تتيح الاشتراكات في موارد Chat فقط تضمين بيانات الموارد. False: يستبعد بيانات الموارد.
-
لإنشاء اشتراك Google Workspace، نفِّذ ما يلي في وحدة التحكّم:
python3 create_subscription.py
تعرض Google Workspace Events API عملية طويلة الأمد مكتملة تتضمّن نسخة من مورد Subscription الذي أنشأته.
اختبار اشتراكك في Google Workspace
لاختبار تلقّي أحداث Google Workspace، يمكنك بدء حدث واسترداد الرسائل إلى اشتراك Pub/Sub.
لاختبار اشتراكك في Google Workspace، اتّبِع الخطوات التالية:
وحدة تحكّم Google API
تفعيل نوع واحد أو أكثر من الأحداث في المورد المستهدف لاشتراكك في Google Workspace على سبيل المثال، إذا اشتركت في تلقّي إشعارات بشأن الرسائل الجديدة في مساحة Chat، يمكنك نشر رسالة في المساحة.
في Google API Console، انتقِل إلى صفحة Pub/Sub:
تأكَّد من اختيار مشروع على السحابة الإلكترونية لتطبيقك.
في قائمة Pub/Sub، انقر على الاشتراكات.
في الجدول، ابحث عن اشتراك Pub/Sub الخاص بموضوعك وانقر على اسم الاشتراك.
انقروا على علامة التبويب الرسائل.
انقر على سحب. قد يستغرق الحدث بضع دقائق لإنشاء رسالة Pub/Sub.
gcloud
تفعيل نوع واحد أو أكثر من الأحداث في المورد المستهدف لاشتراكك في Google Workspace على سبيل المثال، إذا اشتركت في تلقّي إشعارات بشأن الرسائل الجديدة في مساحة Chat، يمكنك نشر رسالة في المساحة.
نفِّذ الأمر التالي:
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ackغيِّر القيم في السلسلة على الشكل التالي:
-
PUBSUB_SUBSCRIPTION_NAME: الاسم الكامل لاشتراكك في Pub/Sub، بتنسيقprojects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID MESSAGE_COUNT: الحد الأقصى لعدد رسائل Pub/Sub التي تريد استردادها.
قد يستغرق إنشاء رسالة Pub/Sub من حدث ما بضع دقائق.
-
لكل حدث تم تشغيله في Google Workspace، يتم تسليم رسالة إلى اشتراكك في Pub/Sub تتضمّن الحدث. لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة تلقّي الأحداث كرسائل Google Cloud Pub/Sub.
ضبط طريقة تلقّي تطبيقك للأحداث
إنّ اشتراك Pub/Sub الذي أنشأته يستند إلى عملية السحب. بعد اختبار اشتراكك في Pub/Sub، يمكنك تعديل نوع التسليم لتغيير طريقة تلقّي تطبيقك للأحداث. على سبيل المثال، يمكنك ضبط اشتراك Pub/Sub على نوع التسليم بالدفع، حتى يتمكّن تطبيقك من تلقّي الأحداث مباشرةً إلى نقطة نهاية التطبيق.
لمعرفة المزيد حول ضبط اشتراك Pub/Sub، يمكنك الاطّلاع على مستندات Pub/Sub.
الاشتراك في أحداث مساحة Chat كتطبيق Google Chat
يمكنك الاشتراك في أحداث Chat كتطبيق Chat من مساحة يكون تطبيق Chat عضوًا فيها. لا يمكن لتطبيقات Chat الاشتراك في أحداث المستخدمين.
كتابة نص برمجي يستدعي Google Workspace Events API
في ما يلي كيفية إنشاء اشتراك في أحداث مساحة Chat من خلال مصادقة التطبيق وموافقة المشرف:
- إذا لزم الأمر، أنشئ تطبيق Chat.
الاشتراك في مرجع Chat، ولكن:
- بدلاً من مصادقة المستخدم، صادِق على التطبيق كأحد تطبيقات Chat من خلال موافقة المشرف لمرة واحدة.
حدِّد نطاقات التفويض التي تسمح لتطبيق Chat بالاشتراك في أحداث Chat. تبدأ نطاقات الأذونات هذه دائمًا بـ
chat.app، وتشمل ما يلي:https://www.googleapis.com/auth/chat.app.memberships: للاشتراك في أحداث أعضاء مساحة Chathttps://www.googleapis.com/auth/chat.app.memberships.readonly: للاشتراك في أحداث أعضاء مساحة Chat-
https://www.googleapis.com/auth/chat.app.messages.readonly: للاشتراك في أحداث الرسائل والتفاعلات في مساحة Chat https://www.googleapis.com/auth/chat.app.spaces: للاشتراك في أحداث مساحة Chathttps://www.googleapis.com/auth/chat.app.spaces.readonly: للاشتراك في أحداث مساحة Chat
تشترك عينة التعليمات البرمجية التالية في أحداث الرسائل في مساحة محادثة محدّدة:
Python
"""Create subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# The Google Workspace resource to monitor for events.
TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'
# The types of events to receive.
EVENT_TYPES = [
'google.workspace.chat.message.v1.created',
'google.workspace.chat.message.v1.updated',
'google.workspace.chat.message.v1.deleted',
]
# The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
TOPIC = 'TOPIC_NAME'
# Call the Workspace Events API using the service endpoint.
service = build(
'workspaceevents',
'v1',
credentials=CREDENTIALS,
)
BODY = {
'target_resource': TARGET_RESOURCE,
'event_types': EVENT_TYPES,
'notification_endpoint': {'pubsub_topic': TOPIC},
'payload_options': {'include_resource': RESOURCE_DATA},
}
response = service.subscriptions().create(body=BODY).execute()
print(response)
غيِّر القيم في السلسلة على الشكل التالي:
SPACE_ID: اسم المساحة، ويمكنك الحصول عليه من خلال الطريقةspaces.listفي Chat API، أو من عنوان URL الخاص بمساحة.TOPIC_NAME: الاسم الكامل لموضوع Pub/Sub الذي أنشأته في مشروعك على السحابة الإلكترونية تم تنسيقه على النحو التالي:projects/PROJECT_ID/topics/TOPIC_ID.
RESOURCE_DATA: قيمة منطقية تحدّد ما إذا كان الاشتراك يتضمّن بيانات الموارد في الحمولة:-
True: يتضمّن جميع بيانات الموارد. للحدّ من الحقول التي سيتم تضمينها، أضِف الحقلfieldMaskوحدِّد حقل واحدًا على الأقل للمرجع الذي تم تغييره. تتيح الاشتراكات في موارد Chat فقط تضمين بيانات الموارد. False: يستبعد بيانات الموارد.
-
الاشتراك في جميع أحداث Chat في مؤسسة Google Workspace كتطبيق Google Chat
يتيح اشتراك العميل لتطبيق Chat مراقبة أحداث المساحة وأحداث المستخدمين في مؤسسة Google Workspace بأكملها.
للحصول على تفاصيل حول كيفية تسليم الأحداث لاشتراكات العملاء، بما في ذلك تسليم الأحداث في مساحات تديرها مؤسسات خارجية، اطّلِع على قيود اشتراكات العملاء وسلوكيات التسليم.
المتطلبات والقيود
- المصادقة: المصادقة كتطبيق Chat من خلال موافقة المشرف لمرة واحدة
- SKU: يجب أن يكون لدى مؤسسة Google Workspace ترخيص واحد على الأقل لرمز تخزين تعريفي من Enterprise. يُرجى العِلم أنّ هذا الشرط لن يتم تطبيقه بشكل صارم خلال مرحلة "برنامج معاينة المطوّرين"، ولكن سيتم تطبيقه في المستقبل (وسيتم الإعلان عن ذلك بشكل منفصل).
- التفرّد: يمكن لتطبيق Chat إنشاء اشتراك واحد فقط للعملاء في مؤسسة Google Workspace معيّنة. يمكن أن يكون لدى مؤسسة Google Workspace ما يصل إلى خمس اشتراكات عملاء إجمالاً (تم إنشاؤها بواسطة تطبيقات Chat مختلفة).
- النطاقات: تتطلّب نطاقًا واحدًا أو أكثر من النطاقات التالية استنادًا إلى أنواع الأحداث التي تريد تلقّيها:
-
https://www.googleapis.com/auth/chat.app.all.spaces.readonly: لتلقّي أحداث حول المساحات -
https://www.googleapis.com/auth/chat.app.all.memberships.readonly: لتلقّي أحداث حول العضويات -
https://www.googleapis.com/auth/chat.app.all.messages.readonly: لتلقّي أحداث حول الرسائل وردود الفعل -
https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly( معاينة المطور): لتلقّي أحداث حول حالات القراءة لدى المستخدمين
-
إنشاء اشتراك للعميل
لإنشاء اشتراك عميل، استدعِ طريقة subscriptions.create.
ينشئ نموذج رمز Python التالي اشتراكًا للعميل:
Python
"""Create a customer subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
# Replace with the scopes needed for the event types you want to receive.
SCOPES = ['https://www.googleapis.com/auth/chat.app.all.messages.readonly']
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# Monitor all events for the Google Workspace organization.
TARGET_RESOURCE = '//admin.googleapis.com/customers/CUSTOMER_ID'
# The types of events to receive.
EVENT_TYPES = [
'google.workspace.chat.message.v1.created',
'google.workspace.chat.message.v1.updated',
'google.workspace.chat.message.v1.deleted',
]
# The endpoint to deliver events to.
TOPIC = 'TOPIC_NAME'
# Call the Workspace Events API.
# Note: Use the v1beta endpoint for Developer Preview features.
service = build(
'workspaceevents',
'v1beta',
credentials=CREDENTIALS,
)
BODY = {
'target_resource': TARGET_RESOURCE,
'event_types': EVENT_TYPES,
'notification_endpoint': {'pubsub_topic': TOPIC},
'payload_options': {'include_resource': RESOURCE_DATA},
}
response = service.subscriptions().create(body=BODY).execute()
print(response)
غيِّر القيم في السلسلة على الشكل التالي:
-
CUSTOMER_ID: تمثّل هذه السمة رقم تعريف العميل. يمكنك أيضًا استخدام الاسم المستعارmy_customerلمؤسسة Google Workspace التي يتبع لها تطبيق Chat. TOPIC_NAME: الاسم الكامل لموضوع Pub/Sub الذي أنشأته في مشروعك على السحابة الإلكترونية تم تنسيقه على النحو التالي:projects/PROJECT_ID/topics/TOPIC_ID.-
RESOURCE_DATA: قيمة منطقية تحدّد ما إذا كان الاشتراك يتضمّن بيانات الموارد في الحمولة:-
True: يتضمّن جميع بيانات الموارد. للحدّ من الحقول التي يتم تضمينها، أضِف الحقلfieldMaskوحدِّد حقلًا واحدًا على الأقل للمرجع الذي تم تغييره. لا يمكن تضمين بيانات الموارد إلا في الاشتراكات في موارد Chat. False: يستبعد بيانات الموارد.
-