يوضّح هذا الدليل التوجيهي كيفية استخدام Google Meet REST API إلى جانب Google Workspace Events API وGoogle Cloud Pub/Sub لمراقبة أحداث الاجتماعات والتفاعل معها. يسجل نموذج التطبيق وقت بدء مكالمات الفيديو وانتهائها، وعند انضمام المشاركين أو مغادرتهم، ووقت توفُّر أي عناصر اجتماع تم إنشاؤها.
لمزيد من المعلومات عن التعامل مع الأحداث، يُرجى الاطّلاع على الاشتراك في أحداث Google Meet ضمن مستندات Google Workspace Events API.
المتطلبات الأساسية
إذا كنت بحاجة إلى تفعيل أي من هذه المتطلبات الأساسية لمؤسستك، اطلب من مشرف Google Workspace تفعيلها:
- حساب على Google Workspace لديه إمكانية الوصول إلى Google Meet
- الوصول لإنشاء مشروع على Google Cloud
- تم تثبيت Python 3.
- تم تثبيت gcloud CLI.
تجهيز البيئة
يوضّح هذا القسم كيفية إنشاء بيئة محلية وضبطها ومشروع Google Cloud لهذا البرنامج التعليمي.
إنشاء دليل عمل وبيئة افتراضية للغة Python
لإنشاء بيئة افتراضية جديدة وتفعيلها، نفِّذ الأوامر التالية في الوحدة الطرفية.
نظام التشغيل Linux أو نظام التشغيل macOS
mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
source env/bin/activate
Windows (مطالبة بالأمر)
mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
env/bin/activate.bat
نظام التشغيل Windows (PowerShell)
mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
env/bin/activate.ps1
إنشاء مشروع على Google Cloud
وحدة تحكُّم Google Cloud
- في Google Cloud Console، انتقِل إلى القائمة > إدارة الهوية وإمكانية الوصول والمشرف > إنشاء مشروع.
-
في حقل اسم المشروع، أدخِل اسمًا وصفيًا لمشروعك.
اختياري: لتعديل رقم تعريف المشروع، انقر على تعديل. لا يمكن تغيير رقم تعريف المشروع بعد إنشاء المشروع، لذا اختَر معرّفًا يفي باحتياجاتك طوال فترة المشروع.
- في حقل الموقع الجغرافي، انقر على تصفّح لعرض المواقع الجغرافية المحتمَلة لمشروعك. بعد ذلك، انقر على اختيار.
- انقر على إنشاء. تنتقل وحدة التحكّم في Google Cloud إلى صفحة "لوحة البيانات" وسيتم إنشاء مشروعك في غضون بضع دقائق.
gcloud CLI
في إحدى بيئات التطوير التالية، يمكنك الوصول إلى واجهة سطر الأوامر في Google Cloud (`gcloud`):
-
Cloud Shell: لاستخدام وحدة طرفية على الإنترنت تم إعداد gcloud CLI
عليها، فعِّل Cloud Shell.
تفعيل Cloud Shell -
Local Shell: لاستخدام بيئة تطوير محلية، عليك تثبيت
initialize
gcloud CLI.
لإنشاء مشروع على السحابة الإلكترونية، استخدِم الأمر `gcloud project generate`:gcloud projects create PROJECT_ID
تفعيل الفوترة لمشروع Google Cloud
وحدة تحكُّم Google Cloud
- في Google Cloud Console، انتقِل إلى الفوترة. انقر على القائمة > الفوترة > مشاريعي.
- في القسم اختيار مؤسسة، اختَر المؤسسة المرتبطة بمشروعك على Google Cloud.
- في صف المشروع، افتح قائمة الإجراءات ( )، وانقر على تغيير الفوترة، واختَر حساب فوترة Cloud.
- انقر على ضبط الحساب.
gcloud CLI
- لإدراج حسابات الفوترة المتاحة، شغِّل:
gcloud billing accounts list
- ربط حساب فوترة بمشروع على Google Cloud:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
استبدل ما يلي:
PROJECT_ID
هو رقم تعريف المشروع للمشروع على Google Cloud الذي تريد تفعيل الفوترة له.BILLING_ACCOUNT_ID
هو رقم تعريف حساب الفوترة المطلوب ربطه بمشروع Google Cloud.
إعداد المصادقة والترخيص
تتيح المصادقة والترخيص للتطبيق الوصول إلى موارد واجهة برمجة التطبيقات Meet REST. يجب منح إذن المستخدم لطلب البيانات من واجهة برمجة التطبيقات Meet REST. يشرح لك هذا القسم كيفية ضبط بيانات اعتماد المستخدم وطلب التفويض.
ضبط شاشة موافقة OAuth واختيار النطاقات
تقترح الخطوات التالية معلومات العنصر النائب لإعداد شاشة موافقة OAuth لتطبيقك. وقبل نشر التطبيق خارجيًا، يُرجى تعديل هذه المعلومات.
- في وحدة تحكُّم Google Cloud، انتقِل إلى القائمة > واجهات برمجة التطبيقات والخدمات > شاشة موافقة OAuth.
- ضمن نوع المستخدم، اختَر داخلي، ثم انقر على إنشاء.
- في اسم التطبيق، أدخِل
Meet REST API Tutorial
. - املأ نموذج تسجيل التطبيق، ثم انقر على حفظ ومتابعة.
- انقر على إضافة نطاقات أو إزالتها. تظهر لوحة تتضمّن قائمة بالنطاقات لكل واجهة برمجة تطبيقات تم تفعيلها في مشروعك على Google Cloud.
- ضمن إضافة النطاقات يدويًا، الصِق النطاقات التالية:
https://www.googleapis.com/auth/meetings.space.created
- انقر على إضافة إلى الجدول.
- انقر على تعديل.
- بعد اختيار النطاقات التي يتطلبها تطبيقك، انقر على حفظ ومتابعة.
- إذا اخترت خارجي لنوع المستخدم، أضِف مستخدمي المختبِرين:
- ضمن المستخدمون التجريبيون، انقر على إضافة مستخدمين.
- أدخِل عنوان بريدك الإلكتروني وأي مستخدمين مختبِرين معتمَدين آخرين، ثم انقر على حفظ ومتابعة.
- مراجعة ملخص تسجيل التطبيق لإجراء تغييرات، انقر على تعديل. إذا كان تسجيل التطبيق يبدو جيدًا، انقر على الرجوع إلى لوحة البيانات.
إنشاء معرِّف عميل
يعمل معرِّف العميل كبيانات اعتماد لتطبيقك أثناء تدفقات OAuth 2.0. نظرًا لأن التطبيق يعمل محليًا، يجب إنشاء معرِّف عميل على سطح المكتب.
- في وحدة تحكُّم Google Cloud، انتقِل إلى رمز القائمة > واجهات برمجة التطبيقات والخدمات > بيانات الاعتماد.
- انقر على إنشاء بيانات اعتماد > معرِّف عميل OAuth.
- انقر على نوع التطبيق > تطبيق الكمبيوتر المكتبي.
- في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
- انقر على إنشاء. تظهر الشاشة التي تم إنشاؤها من خلال عميل OAuth، وتعرض معرِّف العميل وسر العميل الجديد.
- انقر على موافق. تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن معرِّفات عملاء OAuth 2.0.
تثبيت مكتبات المصادقة من Google
تثبيت مكتبات المصادقة من Google:
pip install google-auth google-auth-oauthlib
تنفيذ التفويض
تتطلّب واجهة برمجة التطبيقات Meet REST بيانات اعتماد المستخدم على شكل رمز دخول OAuth 2.0. في هذا القسم، يمكنك تنفيذ مسار OAuth 2.0 لطلب رمز دخول ورمز مميز لإعادة التحميل للمستخدم.
في دليل العمل، أنشئ الملف
main.py
وأضِف المحتوى التالي:import os import json from google.auth.transport import requests from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow def authorize() -> Credentials: """Ensure valid credentials for calling the Meet REST API.""" CLIENT_SECRET_FILE = "./client_secret.json" credentials = None if os.path.exists('token.json'): credentials = Credentials.from_authorized_user_file('token.json') if credentials is None: flow = InstalledAppFlow.from_client_secrets_file( CLIENT_SECRET_FILE, scopes=[ 'https://www.googleapis.com/auth/meetings.space.created', ]) flow.run_local_server(port=0) credentials = flow.credentials if credentials and credentials.expired: credentials.refresh(requests.Request()) if credentials is not None: with open("token.json", "w") as f: f.write(credentials.to_json()) return credentials USER_CREDENTIALS = authorize()
لتشغيل الرمز، يجب توفير كل من معرّف العميل والرمز السري الذي تم إنشاؤه مسبقًا. انسخ ملف سر العميل الذي تم تنزيله إلى دليل عمل المشروع وأعِد تسميته باسم
client_secret.json
.إذا كنت تريد اختبار كيفية عمل التفويض، فشغِّل الأمر التالي. يطلب التطبيق الإذن وينشئ ملف
token.json
في دليل عمل المشروع بعد الموافقة على الطلب.python3 main.py
إضافة واجهة برمجة التطبيقات Meet REST
الآن وبعد اكتمال رمز التفويض، حان وقت تفعيل واجهة برمجة تطبيقات Meet REST وطلبها.
تفعيل واجهات برمجة التطبيقات
يركّز هذا القسم على واجهة برمجة تطبيقات Meet REST، لكنّ هذا الدليل التعليمي يستخدم أيضًا Google Cloud Pub/Sub وGoogle Workspace Events API.
وحدة تحكُّم Google Cloud
في Google Cloud Console، فعِّل واجهة برمجة التطبيقات Google Meet REST API وGoogle Workspace Events API وGoogle Cloud Pub/Sub.
تأكَّد من تفعيل واجهات برمجة التطبيقات في المشروع الصحيح على السحابة الإلكترونية، ثم انقر على التالي.
تأكّد من تفعيل واجهات برمجة التطبيقات الصحيحة، ثم انقر على تفعيل.
gcloud CLI
إذا لزم الأمر، اضبط المشروع الحالي على السحابة الإلكترونية على المشروع الذي أنشأته باستخدام الأمر
gcloud config set project
:gcloud config set project PROJECT_ID
استبدِل PROJECT_ID برقم تعريف المشروع الخاص بمشروع Cloud الذي أنشأته.
تفعيل واجهة برمجة التطبيقات Google Meet REST وGoogle Workspace Events API وGoogle Cloud Pub/Sub باستخدام الأمر
gcloud services enable
:gcloud services enable meet.googleapis.com workspaceevents.googleapis.com pubsub.googleapis.com
تثبيت مكتبة برامج واجهة برمجة التطبيقات Meet REST
اتّبِع الخطوات التالية لتثبيت مكتبة برامج واجهة برمجة التطبيقات Meet REST:
نفِّذ الأمر التالي:
pip install google-apps-meet
عدِّل ملف
main.py
لاستيراد العميل:from google.apps import meet_v2 as meet
إنشاء مساحة
الآن وبعد توفّر واجهة برمجة التطبيقات Meet REST، يمكنك تحديد دالة لإنشاء مساحة اجتماعات يمكن الاشتراك فيها.
تعديل main.py
وإضافة:
def create_space() -> meet.Space:
"""Create a meeting space."""
client = meet.SpacesServiceClient(credentials=USER_CREDENTIALS)
request = meet.CreateSpaceRequest()
return client.create_space(request=request)
الاشتراك في الأحداث
لتلقّي أحداث حول مساحة اجتماعات، يمكنك إنشاء اشتراك باستخدام Google Workspace Events API. يجب أيضًا إنشاء موضوع Google Cloud Pub/Sub والاشتراك فيه، وهو نقطة نهاية للإشعارات حيث يتلقّى تطبيقك الأحداث.
إعداد Google Cloud Pub/Sub
لإنشاء موضوع نشر/اشتراك والاشتراك فيه:
وحدة تحكُّم Google Cloud
- في وحدة التحكّم في Google Cloud، انتقِل إلى القائمة > النشر/الاشتراك.
الانتقال إلى صفحة النشر/الاشتراك
تأكَّد من اختيار المشروع على السحابة الإلكترونية لتطبيقك.
- انقر على
- أدخل
workspace-events
كاسم للموضوع. - اترك الخيار إضافة اشتراك تلقائي محدّدًا.
- انقر على إنشاء. يكون اسم الموضوع الكامل بالتنسيق
projects/{project}/topics/{topic}
. دوِّن هذا الاسم لاستخدامه في الخطوات اللاحقة.
إنشاء موضوع وأدخِل
ما يلي:
- أدخل
- امنح الإذن بالوصول لنشر رسائل النشر/الاشتراك في موضوعك:
- في اللوحة الجانبية، افتح علامة التبويب الأذونات.
- انقر على إضافة عنوان رئيسي.
- في العناصر الرئيسية الجديدة، أدخِل
meet-api-event-push@system.gserviceaccount.com
. - في إسناد الأدوار، اختَر
Pub/Sub Publisher
. - انقر على حفظ.
يمكن أن يستغرق تعديل الأذونات لموضوعك بضع دقائق.
gcloud CLI
- في مشروعك على Google Cloud، يمكنك إنشاء موضوع من خلال تنفيذ ما يلي:
gcloud pubsub topics create workspace-events
تعرض النتيجة اسم الموضوع الكامل بالتنسيق
projects/{project}/topics/{topic}
. دوِّن هذا الاسم لاستخدامه في الخطوات اللاحقة. - منح الإذن بالوصول لنشر الرسائل المتعلقة بموضوعك:
gcloud pubsub topics add-iam-policy-binding workspace-events --member='serviceAccount:meet-api-event-push@system.gserviceaccount.com' --role='roles/pubsub.publisher'
يمكن أن يستغرق تعديل الأذونات لموضوعك بضع دقائق.
- أنشئ اشتراك نشر/اشتراك للموضوع:
gcloud pubsub subscriptions create workspace-events-sub --topic=TOPIC_NAME
استبدل ما يلي:
TOPIC_NAME
: اسم الموضوع الذي أنشأته في الخطوة السابقة
دوِّن اسم الموضوع وتأكَّد من أنّ قيمة {project}
هي
رقم تعريف مشروع Cloud الخاص بتطبيقك. ستستخدم اسم الموضوع لإنشاء
اشتراك Google Workspace لاحقًا.
إنشاء حساب خدمة
وحدة تحكُّم Google Cloud
- في Google Cloud Console، انتقِل إلى القائمة > إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة.
- انقر على إنشاء حساب خدمة.
- املأ تفاصيل حساب الخدمة، ثم انقر على إنشاء ومتابعة.
- اختياري: عيّن الأدوار لحساب الخدمة لمنح الإذن بالوصول إلى موارد مشروعك على Google Cloud. لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة منح الموارد وتغييرها وإبطالها.
- انقر على متابعة.
- اختياري: أدخِل المستخدمين أو المجموعات التي يمكنها إدارة الإجراءات وتنفيذها باستخدام حساب الخدمة هذا. للتعرُّف على المزيد من التفاصيل، يُرجى الاطِّلاع على إدارة انتحال هوية حساب الخدمة.
- انقر على تم. دوِّن عنوان البريد الإلكتروني لحساب الخدمة.
gcloud CLI
- أنشئ حساب الخدمة:
gcloud iam service-accounts create meet-event-listener \ --display-name="meet-event-listener"
- اختياري: عيّن الأدوار لحساب الخدمة لمنح الإذن بالوصول إلى موارد مشروعك على Google Cloud. لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة منح الموارد وتغييرها وإبطالها.
استخدام حساب الخدمة
بعد إنشاء حساب الخدمة، امنح نفسك الإذن بالوصول لانتحال هوية حساب الخدمة.
وحدة تحكُّم Google Cloud
- في عمود الإجراءات لحساب الخدمة الذي تم إنشاؤه حديثًا، انقر على > إدارة الأذونات.
- انقر على إضافة مفتاح > منح إذن الوصول.
- أدخِل عنوان بريدك الإلكتروني ضمن إضافة عناوين رئيسية.
- اختَر حسابات الخدمة > منشئ الرموز المميّزة لحساب الخدمة كدور.
- انقر على حفظ.
gcloud CLI
- لإضافة الإذن، يمكنك تشغيل
gcloud iam service-accounts add-iam-policy-binding
باستخدام عنوان البريد الإلكتروني لحساب الخدمة والمستخدم.gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_EMAIL \ --member="user:YOUR_EMAIL \ --role="roles/iam.serviceAccountTokenCreator"
- سجِّل الدخول باستخدام
gcloud
لضبط بيانات الاعتماد التلقائية للتطبيق على حساب الخدمة. عندما يُطلب منك منح الإذن، سجِّل الدخول باستخدام الحساب نفسه المستخدَم في الخطوات السابقة.gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
تثبيت مكتبة برامج Pub/Sub
استخدِم
pip
لتثبيت مكتبة البرامج الخاصة بخدمة Pub/Sub:pip install google-cloud-pubsub
بعد ذلك، عدِّل
main.py
لاستيراد البرنامج:from google.cloud import pubsub_v1
إنشاء اشتراك Google Workspace
أضِف الرمز التالي إلى main.py
لتحديد طريقة للاشتراك في
أحداث Meet. يشترك هذا الرمز في جميع الأحداث الخاصة بمساحة اجتماعات. وعند الاشتراك، يتم نشر الأحداث في موضوع النشر/الاشتراك.
def subscribe_to_space(space_name: str = None, topic_name: str = None):
"""Subscribe to events for a meeting space."""
session = requests.AuthorizedSession(USER_CREDENTIALS)
body = {
'targetResource': f"//meet.googleapis.com/{space_name}",
"eventTypes": [
"google.workspace.meet.conference.v2.started",
"google.workspace.meet.conference.v2.ended",
"google.workspace.meet.participant.v2.joined",
"google.workspace.meet.participant.v2.left",
"google.workspace.meet.recording.v2.fileGenerated",
"google.workspace.meet.transcript.v2.fileGenerated",
],
"payloadOptions": {
"includeResource": False,
},
"notificationEndpoint": {
"pubsubTopic": topic_name
},
"ttl": "86400s",
}
response = session.post("https://workspaceevents.googleapis.com/v1/subscriptions", json=body)
return response
بعد ذلك، أضِف الرمز المقابل لسحب الأحداث ومعالجتها.
الاستماع إلى الأحداث والتعامل معها
يجب متابعة تعديل main.py
وإضافة الرمز النموذجي التالي. ينفِّذ هذا الرمز البرمجي جهة الاستلام ويستخدم واجهة برمجة تطبيقات Google Cloud Pub/Sub لسحب الأحداث عند توفّرها. تطبع طرق المعالجات المختلفة
المعلومات حول الأحداث المقابلة.
def format_participant(participant: meet.Participant) -> str:
"""Formats a participant for display on the console."""
if participant.anonymous_user:
return f"{participant.anonymous_user.display_name} (Anonymous)"
if participant.signedin_user:
return f"{participant.signedin_user.display_name} (ID: {participant.signedin_user.user})"
if participant.phone_user:
return f"{participant.phone_user.display_name} (Phone)"
return "Unknown participant"
def fetch_participant_from_session(session_name: str) -> meet.Participant:
"""Fetches the participant for a session."""
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
# Use the parent path of the session to fetch the participant details
parsed_session_path = client.parse_participant_session_path(session_name)
participant_resource_name = client.participant_path(
parsed_session_path["conference_record"],
parsed_session_path["participant"])
return client.get_participant(name=participant_resource_name)
def on_conference_started(message: pubsub_v1.subscriber.message.Message):
"""Display information about a conference when started."""
payload = json.loads(message.data)
resource_name = payload.get("conferenceRecord").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
conference = client.get_conference_record(name=resource_name)
print(f"Conference (ID {conference.name}) started at {conference.start_time.rfc3339()}")
def on_conference_ended(message: pubsub_v1.subscriber.message.Message):
"""Display information about a conference when ended."""
payload = json.loads(message.data)
resource_name = payload.get("conferenceRecord").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
conference = client.get_conference_record(name=resource_name)
print(f"Conference (ID {conference.name}) ended at {conference.end_time.rfc3339()}")
def on_participant_joined(message: pubsub_v1.subscriber.message.Message):
"""Display information about a participant when they join a meeting."""
payload = json.loads(message.data)
resource_name = payload.get("participantSession").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
session = client.get_participant_session(name=resource_name)
participant = fetch_participant_from_session(resource_name)
display_name = format_participant(participant)
print(f"{display_name} joined at {session.start_time.rfc3339()}")
def on_participant_left(message: pubsub_v1.subscriber.message.Message):
"""Display information about a participant when they leave a meeting."""
payload = json.loads(message.data)
resource_name = payload.get("participantSession").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
session = client.get_participant_session(name=resource_name)
participant = fetch_participant_from_session(resource_name)
display_name = format_participant(participant)
print(f"{display_name} left at {session.end_time.rfc3339()}")
def on_recording_ready(message: pubsub_v1.subscriber.message.Message):
"""Display information about a recorded meeting when artifact is ready."""
payload = json.loads(message.data)
resource_name = payload.get("recording").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
recording = client.get_recording(name=resource_name)
print(f"Recording available at {recording.drive_destination.export_uri}")
def on_transcript_ready(message: pubsub_v1.subscriber.message.Message):
"""Display information about a meeting transcript when artifact is ready."""
payload = json.loads(message.data)
resource_name = payload.get("transcript").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
transcript = client.get_transcript(name=resource_name)
print(f"Transcript available at {transcript.docs_destination.export_uri}")
def on_message(message: pubsub_v1.subscriber.message.Message) -> None:
"""Handles an incoming event from the Google Cloud Pub/Sub API."""
event_type = message.attributes.get("ce-type")
handler = {
"google.workspace.meet.conference.v2.started": on_conference_started,
"google.workspace.meet.conference.v2.ended": on_conference_ended,
"google.workspace.meet.participant.v2.joined": on_participant_joined,
"google.workspace.meet.participant.v2.left": on_participant_left,
"google.workspace.meet.recording.v2.fileGenerated": on_recording_ready,
"google.workspace.meet.transcript.v2.fileGenerated": on_transcript_ready,
}.get(event_type)
try:
if handler is not None:
handler(message)
message.ack()
except Exception as error:
print("Unable to process event")
print(error)
def listen_for_events(subscription_name: str = None):
"""Subscribe to events on the subscription."""
subscriber = pubsub_v1.SubscriberClient()
with subscriber:
future = subscriber.subscribe(subscription_name, callback=on_message)
print("Listening for events")
try:
future.result()
except KeyboardInterrupt:
future.cancel()
print("Done")
إنهاء التعليمات البرمجية
أضِف الرمز التالي إلى main.py
لطلب طرق إنشاء المساحة والاشتراك في الأحداث والاستماع. عدِّل الثوابت TOPIC_NAME
وSUBSCRIPTION_NAME
باستخدام أسماء المواضيع والاشتراكات التي أنشأتها سابقًا.
أضِف الرمز إلى
main.py
:space = create_space() print(f"Join the meeting at {space.meeting_uri}") TOPIC_NAME = "projects/PROJECT_ID/topics/TOPIC_ID" SUBSCRIPTION_NAME = "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID" subscription = subscribe_to_space(topic_name=TOPIC_NAME, space_name=space.name) listen_for_events(subscription_name=SUBSCRIPTION_NAME)
استبدل ما يلي:
PROJECT_ID
: رقم تعريف المشروع الفريد لتطبيقك على Google Cloud، مثلmy-sample-project-191923
TOPIC_ID
: اسم موضوع النشر/الاشتراك الذي أنشأته في مشروعك على السحابة الإلكترونية.SUBSCRIPTION_ID
: اسم الاشتراك، مثلworkspace-events-sub
شغِّل البرنامج:
python3 main.py
إذا لم تكن قد قمت بتشغيل البرنامج من قبل، فسيطلب الإذن في المرة الأولى. امنح الإذن بالوصول إلى التطبيق لطلب بيانات واجهة برمجة التطبيقات Meet REST. بعد تشغيل البرنامج بنجاح، من المفترض أن تظهر لك مُخرجات مشابهة لما يلي:
Join the meeting at https://meet.google.com/abc-mnop-xyz
الانضمام إلى المؤتمر
لإنشاء أحداث للتطبيق، يمكنك الانضمام إلى المؤتمر باستخدام عنوان URL الذي يعرضه التطبيق. بعد الانضمام، يمكنك تجربة هذه الإجراءات لتشغيل الأحداث:
- مغادرة الاجتماع وإعادة الانضمام إليه.
- يمكنك دعوة الآخرين أو الاتصال باستخدام هاتفك.
- تفعيل ميزة "تسجيل المكالمات وتحويلها إلى نص"
ينشئ كل نشاط من هذه الأنشطة حدثًا يتلقاه التطبيق ويسجّله في وحدة تحكُّم Google Cloud.
استخدِم ctrl-c
لمقاطعة البرنامج عند الانتهاء.
اختياري: خطوات إضافية يمكنك تجربتها
ويسجّل التطبيق التفاصيل الأساسية عن الأحداث. لمواصلة استكشاف واجهة برمجة تطبيقات Meet REST، يمكنك محاولة تعديل التطبيق لتنفيذ هذه الإجراءات الإضافية.
- استخدِم People API لاسترداد معلومات إضافية عن المشاركين الذين سجّلوا دخولهم.
- استخدم Google Drive API لتنزيل التسجيلات والنصوص.
- بدلاً من تنزيل النصوص من Google Drive، يمكنك استردادها باستخدام طرق النص المنظَّم في واجهة برمجة تطبيقات Meet REST.
اختياري: إخلاء مساحة تخزين
لتجنب تكبد رسوم حسابك في Google Cloud Console مقابل الموارد المستخدمة في هذا البرنامج التعليمي، ننصحك بتنظيف أي موارد ومشاريع تم إنشاؤها.
لحذف الاشتراك:
وحدة التحكّم
في Google Cloud Console، انتقِل إلى القائمة > النشر/الاشتراك > الاشتراكات.
اختَر الاشتراك وانقر على
مزيد من الإجراءات.انقر على حذف. ستظهر نافذة حذف الاشتراك.
انقر على حذف.
gcloud CLI
حذف الاشتراك:
gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
لحذف الموضوع:
وحدة التحكّم
في Google Cloud Console، انتقِل إلى القائمة > النشر/الاشتراك > المواضيع
اختيار الموضوع والنقر على
مزيد من الإجراءاتانقر على حذف. ستظهر نافذة حذف الموضوع.
أدخِل
delete
، ثمّ انقر على حذف.
gcloud CLI
لحذف الموضوع:
gcloud pubsub topics delete TOPIC_NAME
لحذف المشروع:
وحدة التحكّم
- في Google Cloud Console، انتقِل إلى صفحة إدارة الموارد. انقر على القائمة > إدارة الهوية وإمكانية الوصول والمشرف > إدارة الموارد.
- في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على حذف .
- في مربّع الحوار، اكتب معرّف المشروع، ثم انقر على إيقاف التشغيل لحذف المشروع.
gcloud CLI
لحذف مشروع، استخدم الأمر حذف مشروعات gcloud:
gcloud projects delete PROJECT_ID
مواضيع ذات صلة
- تعرَّف على مزيد من المعلومات حول الإجراءات التي يمكن أن تتخذها Google Meet REST API وراجِع المستندات المرجعية.
- تعرَّف على طريقة الاشتراك في الأحداث باستخدام Google Workspace Events API.
- لمزيد من المعلومات حول المصادقة، يُرجى الاطّلاع على ضبط شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth واختيار النطاقات.