إنشاء اشتراك Google Workspace

توضّح هذه الصفحة كيفية استخدام Google Workspace Events API لإنشاء اشتراك في أحد موارد Google Workspace. يتيح اشتراك Google Workspace لتطبيقك تلقّي معلومات حول أحداث Google Workspace التي تمثّل تغييرات على أحد موارد Google Workspace. للتعرّف على الموارد وأنواع الأحداث التي تتوافق معها "واجهة برمجة تطبيقات أحداث Google Workspace"، يُرجى الاطّلاع على نظرة عامة على "واجهة برمجة تطبيقات أحداث Google Workspace".

تتضمّن هذه الصفحة الخطوات التالية لإنشاء اشتراك في Google Workspace:

  1. إعداد البيئة
  2. أنشئ موضوعًا في Google Cloud Pub/Sub واشترِك فيه. استخدِم هذا المستند كنقطة نهاية لتلقّي أحداث Google Workspace.
  3. اطلب طريقة create في Google Workspace Events API على المورد Subscription.
  4. اختبِر اشتراكك في Google Workspace للتأكّد من أنّ موضوع Pub/Sub يتلقّى الأحداث التي اشتركت فيها.
  5. يمكنك اختياريًا ضبط كيفية إرسال الأحداث إلى نقطة نهاية لتطبيقك، لكي يتمكّن تطبيقك من معالجة الحدث واتّخاذ الإجراءات اللازمة إذا لزم الأمر.

المتطلبات الأساسية

برمجة التطبيقات

  • لاستخدام أوامر Google Cloud CLI في هذا الدليل:
    1. ثبِّت Google Cloud CLI.
    2. لإعداد واجهة سطر الأوامر في gcloud، نفِّذ الرمز التالي:
    3.   gcloud init
        
  • مشروع "برمجة تطبيقات Google":
    • استخدِم مشروعك على السحابة الإلكترونية على Google Cloud بدلاً من المشروع التلقائي الذي يتم إنشاؤه تلقائيًا من خلال "برمجة تطبيقات Google".
    • بالنسبة إلى جميع النطاقات التي أضفتها لضبط شاشة طلب الموافقة عبر OAuth، يجب أيضًا إضافة النطاقات إلى ملف appsscript.json في مشروع "برمجة تطبيقات Google". على سبيل المثال، إذا حدّدت نطاق chat.messages، أضِف ما يلي:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • فعِّل الخدمة المتقدّمة "Google Workspace Events".
  • مشروع على 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 في هذا الدليل:
    1. ثبِّت Google Cloud CLI.
    2. لإعداد واجهة سطر الأوامر في gcloud، نفِّذ الرمز التالي:
    3.   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 API، عليك تفعيلها في مشروع على Google Cloud. يمكنك تفعيل واجهة برمجة تطبيقات واحدة أو أكثر في مشروع واحد على Google Cloud.

Google Cloud Console

في وحدة تحكّم Google Cloud، افتح مشروع Google Cloud لتطبيقك وفعِّل Google Workspace Events API وPub/Sub API:

تفعيل واجهات برمجة التطبيقات

gcloud

  1. في دليل العمل، سجِّل الدخول إلى حسابك على Google:

    gcloud auth login
  2. اضبط مشروعك على مشروع على السحابة الإلكترونية لتطبيقك:

    gcloud config set project PROJECT_ID

    استبدِل PROJECT_ID برقم تعريف المشروع على السحابة الإلكترونية لتطبيقك.

  3. تفعيل Google Workspace Events API وGoogle Cloud Pub/Sub API:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

إنشاء بيانات اعتماد معرِّف عميل OAuth

اختَر نوع التطبيق للحصول على تعليمات محدّدة حول كيفية إنشاء معرِّف عميل OAuth:

تطبيق الويب

  1. في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.

    الانتقال إلى "العملاء"

  2. انقر على إنشاء عميل (Create Client).
  3. انقر على نوع التطبيق > تطبيق الويب.
  4. في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
  5. أضِف معرّفات الموارد المنتظمة (URI) المعتمَدة ذات الصلة بتطبيقك:
    • تطبيقات من جهة العميل (JavaScript): ضمن مصادر JavaScript المسموح بها، انقر على إضافة معرّف الموارد المنتظم (URI). بعد ذلك، أدخِل معرّف موارد منتظم (URI) لاستخدامه في طلبات المتصفّح. يحدّد هذا الإعداد النطاقات التي يمكن لتطبيقك إرسال طلبات بيانات من واجهة برمجة التطبيقات منها إلى خادم OAuth 2.0.
    • التطبيقات من جهة الخادم (Java وPython والمزيد): ضمن معرّفات الموارد المنتظمة (URI) المعتمَدة لإعادة التوجيه، انقر على إضافة معرّف الموارد المنتظم (URI). بعد ذلك، أدخِل معرّف موارد منتظم (URI) لنقطة النهاية يمكن لخادم OAuth 2.0 إرسال الردود إليه.
  6. اختياري: إذا كان تطبيقك عبارة عن وكيل ذكاء اصطناعي يتّخذ إجراءات نيابةً عن المستخدمين، اختَر استخدام هذا العميل لوكيل مستنِد إلى الذكاء الاصطناعي. إذا كان تطبيقك يتيح كلاً من سير عمل وكيل الذكاء الاصطناعي وميزات المستخدم العادية، أنشئ عملاء OAuth منفصلين لكل منهما. لا يمكنك تغيير هذا الإعداد بعد إنشاء العميل.
  7. انقر على إنشاء.

    تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن معرّفات عملاء OAuth 2.0.

    يُرجى العِلم أنّه لا يتم استخدام أسرار العميل في تطبيقات الويب.

Android

  1. في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.

    الانتقال إلى "العملاء"

  2. انقر على إنشاء عميل (Create Client).
  3. انقر على نوع التطبيق > Android.
  4. في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
  5. في حقل اسم الحزمة، أدخِل اسم الحزمة من ملف AndroidManifest.xml.
  6. في حقل الملف المرجعي لشهادة SHA-1، أدخِل الملف المرجعي لشهادة SHA-1 الذي تم إنشاؤه.
  7. اختياري: إذا كان تطبيقك عبارة عن وكيل ذكاء اصطناعي يتّخذ إجراءات نيابةً عن المستخدمين، اختَر استخدام هذا العميل لوكيل مستنِد إلى الذكاء الاصطناعي. إذا كان تطبيقك يتيح كلاً من سير عمل وكيل الذكاء الاصطناعي وميزات المستخدم العادية، أنشئ عملاء OAuth منفصلين لكل منهما. لا يمكنك تغيير هذا الإعداد بعد إنشاء العميل.
  8. انقر على إنشاء.

    تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن "معرّفات عملاء OAuth 2.0".

iOS

  1. في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.

    الانتقال إلى "العملاء"

  2. انقر على إنشاء عميل (Create Client).
  3. انقر على نوع التطبيق > iOS.
  4. في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
  5. في حقل معرّف الحزمة، أدخِل معرّف الحزمة كما هو مُدرَج في ملف Info.plist الخاص بالتطبيق.
  6. اختياري: إذا كان تطبيقك يظهر في Apple App Store، أدخِل معرّف App Store.
  7. اختياري: في حقل معرّف الفريق، أدخِل السلسلة الفريدة المكوّنة من 10 أحرف والتي أنشأتها Apple وتم تخصيصها لفريقك.
  8. اختياري: إذا كان تطبيقك عبارة عن وكيل ذكاء اصطناعي يتّخذ إجراءات نيابةً عن المستخدمين، اختَر استخدام هذا العميل لوكيل مستنِد إلى الذكاء الاصطناعي. إذا كان تطبيقك يتيح كلاً من سير عمل وكيل الذكاء الاصطناعي وميزات المستخدم العادية، أنشئ عملاء OAuth منفصلين لكل منهما. لا يمكنك تغيير هذا الإعداد بعد إنشاء العميل.
  9. انقر على إنشاء.

    تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن "معرّفات عملاء OAuth 2.0".

تطبيق Chrome

  1. في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.

    الانتقال إلى "العملاء"

  2. انقر على إنشاء عميل (Create Client).
  3. انقر على نوع التطبيق > إضافة Chrome.
  4. في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
  5. في حقل معرّف السلعة، أدخِل سلسلة معرّف تطبيقك الفريدة المكوّنة من 32 حرفًا. يمكنك العثور على قيمة رقم التعريف هذا في عنوان URL الخاص بتطبيقك في "سوق Chrome الإلكتروني" وفي لوحة بيانات المطوّر في "سوق Chrome الإلكتروني".
  6. اختياري: إذا كان تطبيقك عبارة عن وكيل ذكاء اصطناعي يتّخذ إجراءات نيابةً عن المستخدمين، اختَر استخدام هذا العميل لوكيل مستنِد إلى الذكاء الاصطناعي. إذا كان تطبيقك يتيح كلاً من سير عمل وكيل الذكاء الاصطناعي وميزات المستخدم العادية، أنشئ عملاء OAuth منفصلين لكل منهما. لا يمكنك تغيير هذا الإعداد بعد إنشاء العميل.
  7. انقر على إنشاء.

    تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن "معرّفات عملاء OAuth 2.0".

تطبيق متوافق مع الكمبيوتر المكتبي

  1. في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.

    الانتقال إلى "العملاء"

  2. انقر على إنشاء عميل (Create Client).
  3. انقر على نوع التطبيق > تطبيق متوافق مع الكمبيوتر المكتبي.
  4. في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
  5. اختياري: إذا كان تطبيقك عبارة عن وكيل ذكاء اصطناعي يتّخذ إجراءات نيابةً عن المستخدمين، اختَر استخدام هذا العميل لوكيل مستنِد إلى الذكاء الاصطناعي. إذا كان تطبيقك يتيح كلاً من سير عمل وكيل الذكاء الاصطناعي وميزات المستخدم العادية، أنشئ عملاء OAuth منفصلين لكل منهما. لا يمكنك تغيير هذا الإعداد بعد إنشاء العميل.
  6. انقر على إنشاء.

    تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن "معرّفات عملاء OAuth 2.0".

أجهزة التلفزيون وأجهزة الإدخال المحدودة

  1. في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google Auth > العملاء.

    الانتقال إلى "العملاء"

  2. انقر على إنشاء عميل (Create Client).
  3. انقر على نوع التطبيق > أجهزة التلفزيون والأجهزة ذات الإدخال المحدود.
  4. في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
  5. اختياري: إذا كان تطبيقك عبارة عن وكيل ذكاء اصطناعي يتّخذ إجراءات نيابةً عن المستخدمين، اختَر استخدام هذا العميل لوكيل مستنِد إلى الذكاء الاصطناعي. إذا كان تطبيقك يتيح كلاً من سير عمل وكيل الذكاء الاصطناعي وميزات المستخدم العادية، أنشئ عملاء OAuth منفصلين لكل منهما. لا يمكنك تغيير هذا الإعداد بعد إنشاء العميل.
  6. انقر على إنشاء.

    تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن "معرّفات عملاء OAuth 2.0".

Universal Windows Platform (منصة Windows العالمية)

  1. في Google API Console، انتقِل إلى "القائمة" > > العملاء.

    الانتقال إلى "العملاء"

  2. انقر على إنشاء عميل (Create Client).
  3. انقر على نوع التطبيق > Universal Windows Platform (UWP).
  4. في حقل "الاسم"، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google API Console.
  5. في حقل "رقم تعريف المتجر"، أدخِل قيمة رقم تعريف تطبيقك الفريد المكوّن من 12 حرفًا في Microsoft Store. يمكنك العثور على هذا المعرّف في عنوان URL الخاص بتطبيقك على Microsoft Store وفي مركز الشركاء.
  6. اختياري: إذا كان تطبيقك عبارة عن وكيل ذكاء اصطناعي يتّخذ إجراءات نيابةً عن المستخدمين، اختَر استخدام هذا العميل لوكيل مستنِد إلى الذكاء الاصطناعي. إذا كان تطبيقك يتيح كلاً من سير عمل وكيل الذكاء الاصطناعي وميزات المستخدم العادية، أنشئ عملاء OAuth منفصلين لكل منهما. لا يمكنك تغيير هذا الإعداد بعد إنشاء العميل.
  7. انقر على إنشاء.

    تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن "معرّفات عملاء OAuth 2.0".

تنزيل ملف JSON لسرّ العميل

ملف سر العميل هو تمثيل JSON لبيانات اعتماد معرّف عميل OAuth التي يمكن لتطبيقك الرجوع إليها عند تقديم بيانات الاعتماد.

  1. في Google API Console، انتقِل إلى "القائمة" > واجهات برمجة التطبيقات والخدمات > بيانات الاعتماد.

    الانتقال إلى "بيانات الاعتماد"

  2. ضمن معرّفات عملاء OAuth 2.0، انقر على معرّف العميل الذي أنشأته.

  3. انقر على تنزيل ملف JSON.

  4. احفظ الملف باسم credentials.json.

إنشاء موضوع في Pub/Sub والاشتراك فيه

في هذا القسم، يمكنك إنشاء موضوع على Pub/Sub واشتراك فيه. يعمل موضوع Pub/Sub كنقطة نهاية للإشعارات حيث يتلقّى اشتراكك في Google Workspace الأحداث.

لمزيد من المعلومات حول إنشاء مواضيع Pub/Sub وإدارتها، يُرجى الاطّلاع على مستندات Pub/Sub.

لإنشاء موضوع Pub/Sub والاشتراك فيه:

وحدة تحكّم Google API

  1. في Google API Console، انتقِل إلى صفحة Pub/Sub:

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

    تأكَّد من اختيار مشروع على السحابة الإلكترونية لتطبيقك.

  2. انقر على إنشاء موضوع واتّبِع الخطوات التالية:

    1. أدخِل اسمًا لموضوعك، مثل workspace-events-topic.
    2. اترك الخيار إضافة اشتراك تلقائي محدّدًا. يُطلق Pub/Sub على هذا الاشتراك التلقائي اسمًا مشابهًا لاسم موضوعك، مثل workspace-events-topic-sub.
    3. اختياري: يمكنك تعديل أو ضبط سمات إضافية لموضوعك.
  3. انقر على إنشاء. يتم تنسيق اسم الموضوع الكامل على النحو التالي: projects/PROJECT_ID/topics/TOPIC_ID. استخدِم هذا الاسم الكامل في خطوة لاحقة.

  4. امنح الإذن بنشر رسائل Pub/Sub في موضوعك:

    1. في صفحة الموضوع، انتقِل إلى اللوحة الجانبية وافتح علامة التبويب الأذونات.
    2. انقر على إضافة مستخدم أساسي.
    3. في حقل إضافة مستخدمين رئيسيين، أضِف حساب الخدمة لتطبيق Google Workspace الذي يرسل الأحداث إلى اشتراكك:
      1. بالنسبة إلى أحداث Chat، chat-api-push@system.gserviceaccount.com.
      2. بالنسبة إلى أحداث Drive، drive-api-event-push@system.gserviceaccount.com.
      3. بالنسبة إلى أحداث Meet، meet-api-event-push@system.gserviceaccount.com.
    4. في قائمة إسناد الأدوار، اختَر Pub/Sub Publisher.
    5. انقر على حفظ. قد يستغرق تعديل أذونات موضوعك بضع دقائق.

gcloud

  1. في مشروعك على السحابة الإلكترونية، أنشئ موضوعًا من خلال تنفيذ الأمر التالي:

    gcloud pubsub topics create TOPIC_ID

    استبدِل TOPIC_ID بمعرّف فريد لموضوعك، مثل workspace-events-topic.

    يعرض الناتج اسم الموضوع بالكامل، بالتنسيق projects/PROJECT_ID/topics/TOPIC_ID. دوِّن الاسم، وتأكَّد من أنّ قيمة PROJECT_ID هي رقم تعريف المشروع على السحابة الإلكترونية لتطبيقك. استخدِم اسم الموضوع في الخطوة التالية، ولإنشاء اشتراك Google Workspace لاحقًا.

  2. امنح إذن الوصول لنشر الرسائل في موضوعك:

    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، استخدِم أحد حسابات الخدمة التالية:
      • لتلقّي الأحداث من Drive، استخدِم drive-api-event-push@system.gserviceaccount.com.
      • لتلقّي الأحداث من Meet، استخدِم meet-api-event-push@system.gserviceaccount.com.

    قد يستغرق تعديل أذونات الموضوع بضع دقائق.

  3. أنشئ اشتراكًا في Pub/Sub للموضوع:

     gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

    غيِّر القيم في السلسلة على الشكل التالي:

    • ‫SUBSCRIPTION_NAME: اسم اشتراكك، مثل workspace-events-subscription
    • TOPIC_NAME: اسم الموضوع الذي أنشأته في الخطوة السابقة

الاشتراك في مورد Google Workspace

في هذا القسم، يمكنك الاشتراك في مرجع Google Workspace الذي تريد مراقبته بحثًا عن الأحداث.

اختيار المرجع المستهدَف وتحديده

في اشتراك Google Workspace، يكون المورد المستهدَف هو مورد Google Workspace الذي تراقبه بحثًا عن الأحداث. يتم تمثيل المورد المستهدف في حقل targetResource للاشتراك، ويتم تنسيقه باستخدام اسم المورد الكامل. على سبيل المثال، بالنسبة إلى اشتراك يراقب مساحة Chat (spaces/AAAABBBBBBB)، تكون قيمة targetResource هي //chat.googleapis.com/spaces/AAAABBBBBBB.

تحديد مورد مستهدَف في Chat

المورد المستهدف التنسيق القيود
مسافة

//chat.googleapis.com/spaces/SPACE

حيث يمثّل SPACE المعرّف في اسم المورد لمورد space في Chat API. يمكنك الحصول على المعرّف من عنوان URL الخاص بالمساحة أو باستخدام طريقة spaces.list().

يجب أن يكون مستخدم Chat أو تطبيق Chat الذي يفوّض الاشتراك عضوًا في المساحة من خلال حسابه على Google Workspace أو حسابه على Google. يسمح باستخدام:
جميع المساحات لمستخدم معيّن

//chat.googleapis.com/spaces/-

لا يتلقّى الاشتراك سوى الأحداث الخاصة بالمساحات التي يكون فيها المستخدم عضوًا من خلال حسابه على Google Workspace أو حسابه على Google. تتيح هذه الطريقة مصادقة المستخدم فقط.
المستخدم

//cloudidentity.googleapis.com/users/USER

حيث يمثّل USER المعرّف في اسم المورد لمورد user في Chat API. لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة تحديد مستخدمي Google Chat.

يتلقّى الاشتراك الأحداث المتعلّقة بالمستخدم الذي سمح بالاشتراك فقط. لا يمكن لمستخدم تفويض اشتراك نيابةً عن مستخدمين آخرين. تتيح هذه الطريقة مصادقة المستخدم فقط.

العميل ( معاينة المطوّر)

//admin.googleapis.com/customers/CUSTOMER

حيث CUSTOMER هو رقم تعريف العميل. يمكنك أيضًا استخدام الاسم المستعار my_customer لنطاق العميل في تطبيق Chat.

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

تحديد مورد مستهدَف في Drive

المورد المستهدف التنسيق القيود (إن وُجدت)
ملف //drive.googleapis.com/files/FILE

حيث يمثّل FILE المعرّف في اسم المورد لمورد files في Drive API. يمكنك الحصول على رقم التعريف من عنوان URL للملف أو باستخدام طريقة files.list.

يجب أن يكون لدى المستخدم الذي يفوّض الاشتراك إذنًا في الملف ضمن الاشتراك المرتبط بحدث الاشتراك.
مساحة تخزين سحابي مشتركة //drive.googleapis.com/drives/DRIVE

حيث يمثّل DRIVE المعرّف في اسم المورد لمورد drives في Drive API. يمكنك الحصول على المعرّف من عنوان URL الخاص بمساحة التخزين السحابي أو باستخدام طريقة drives.list.

لا يتلقّى الاشتراك سوى أحداث للعناصر في مساحة التخزين السحابي المشتركة التي يكون فيها المستخدم عضوًا من خلال حسابه على Google Workspace أو حسابه على Google.

تحديد مورد مستهدَف لـ Meet

المورد المستهدف التنسيق القيود (إن وُجدت)
مساحة الاجتماع //meet.googleapis.com/spaces/SPACE

حيث يمثّل SPACE المعرّف في اسم المورد لمورد spaces في واجهة برمجة التطبيقات REST API في Meet. لمعرفة التفاصيل، يُرجى الاطّلاع على كيفية تحديد Meet لمساحة الاجتماع.

المستخدم //cloudidentity.googleapis.com/users/USER

حيث يمثّل USER المعرّف في الحقل signedinUser.user لمورد participants في واجهة برمجة التطبيقات REST API في Meet. لمعرفة التفاصيل، يُرجى الاطّلاع على العمل مع المشاركين.

يتلقّى الاشتراك أحداثًا عن جميع مساحات الاجتماعات التي يملكها المستخدم. عادةً ما يكون مالك مساحة الاجتماع هو أيضًا المنظّم لحدث في "تقويم Google" المرتبط بمساحة الاجتماع.

إنشاء اشتراك في Google Workspace

لإنشاء اشتراك، استخدِم طريقة subscriptions.create في Google Workspace Events API لإنشاء مورد Subscription. حدِّد الحقول التالية:

  • ‫targetResource: حساب Google Workspace الذي حدّدته في القسم السابق، وتم تنسيقه باستخدام اسم المورد الكامل
  • ‫eventTypes: مصفوفة من نوع واحد أو أكثر من أنواع الأحداث التي تريد تلقّيها حول المورد. على سبيل المثال، إذا كان تطبيقك يحتاج فقط إلى معرفة الرسائل الجديدة المنشورة في مساحة Chat، يمكن لتطبيقك الاشتراك في الأحداث المتعلقة بالرسائل التي تم إنشاؤها.
  • notificationEndpoint: نقطة نهاية الإشعار التي يرسل إليها اشتراكك في Google Workspace الأحداث استخدِم موضوع Pub/Sub الذي أنشأته في القسم السابق.
  • ‫payloadOptions: خيارات لتحديد مقدار بيانات الموارد التي يجب تضمينها في حمولة الحدث. يؤثر هذا الإعداد في وقت انتهاء صلاحية اشتراكك. لمزيد من المعلومات، يُرجى الاطّلاع على بيانات الأحداث.

لإنشاء اشتراك في Google Workspace، اتّبِع الخطوات التالية:

برمجة التطبيقات

  1. في مشروع "برمجة تطبيقات 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: لا يشمل بيانات الموارد.
  2. لإنشاء اشتراك Google Workspace، شغِّل الدالة createSubscription في مشروع "برمجة تطبيقات Google".

Python

  1. في دليل العمل، أنشئ ملفًا باسم 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: لا يشمل بيانات الموارد.
  2. لإنشاء اشتراك Google Workspace، شغِّل الأمر التالي في وحدة الطرفية:

    python3 create_subscription.py

تعرض واجهة Google Workspace Events API عملية طويلة مكتملة تحتوي على مثيل مورد Subscription الذي أنشأته.

اختبار اشتراكك في Google Workspace

لاختبار ما إذا كنت تتلقّى أحداث Google Workspace، يمكنك بدء حدث وسحب الرسائل إلى اشتراك Pub/Sub.

لاختبار اشتراكك في Google Workspace:

وحدة تحكّم Google API

  1. تفعيل نوع واحد أو أكثر من الأحداث في المورد المستهدَف لاشتراكك في Google Workspace على سبيل المثال، إذا اشتركت في الرسائل الجديدة في مساحة Chat، يمكنك نشر رسالة في المساحة.

  2. في Google API Console، انتقِل إلى صفحة Pub/Sub:

    الانتقال إلى Pub/Sub

    تأكَّد من اختيار مشروع على السحابة الإلكترونية لتطبيقك.

  3. في قائمة Pub/Sub، انقر على الاشتراكات.

  4. في الجدول، ابحث عن اشتراك Pub/Sub لموضوعك وانقر على اسم الاشتراك.

  5. انقر على علامة التبويب الرسائل.

  6. انقر على سحب. قد يستغرق الحدث بضع دقائق لإنشاء رسالة Pub/Sub.

gcloud

  1. تفعيل نوع واحد أو أكثر من الأحداث في المورد المستهدَف لاشتراكك في Google Workspace على سبيل المثال، إذا اشتركت في الرسائل الجديدة في مساحة Chat، انشر رسالة في المساحة.

  2. نفِّذ الأمر التالي:

    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 باستخدام مصادقة التطبيق وموافقة المشرف:

  1. إنشاء تطبيق Chat إذا لزم الأمر
  2. الاشتراك في مرجع Chat، ولكن:

    1. بدلاً من مصادقة المستخدم، يمكنك المصادقة كتطبيق Chat من خلال موافقة المشرف لمرة واحدة.
    2. حدِّد نطاقات التفويض التي تسمح لتطبيق Chat بالاشتراك في أحداث Chat. تبدأ نطاقات التفويض هذه دائمًا بـ chat.app، وتشمل ما يلي:

      • https://www.googleapis.com/auth/chat.app.memberships: الاشتراك في أحداث أعضاء مساحة Chat
      • https://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: الاشتراك في أحداث مساحة Chat
      • ‫https://www.googleapis.com/auth/chat.app.spaces.readonly: الاشتراك في أحداث مساحة Chat

تشترك عيّنة التعليمات البرمجية التالية في أحداث الرسائل في مساحة محدّدة في 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: لا يشمل بيانات الموارد.