يشرح هذا الدليل التوجيهي كيفية استخدام واجهة برمجة التطبيقات Google Meet REST API إلى جانب Google Workspace Events API وGoogle Cloud Pub/Sub لمراقبة الأحداث والتفاعل معها. في مساحة اجتماعات Meet. يسجِّل نموذج التطبيق وقت بدء المؤتمرات وانتهائها، ووقت انضمام المشاركين أو مغادرتهم، ووقت توفُّر أي مواد عرض تم إنشاؤها للاجتماع.
بدلاً من الاشتراك في مساحة اجتماعات معيّنة، يمكنك الاشتراك في مستخدم Meet لتلقّي أحداث أي مساحة اجتماعات يملكها المستخدم أو ينظّمها. للحصول على التفاصيل، يمكنك مراجعة الاشتراك في أحداث Google Meet في مستندات Google Workspace Events API
المتطلبات الأساسية
في حال الحاجة إلى تفعيل أي من هذه المتطلبات الأساسية لمؤسستك، اطلب لتفعيلها، يمكن لمشرف Google Workspace:
- حساب Google Workspace مع Google Meet
- الإذن بالوصول لإنشاء مشروع على Google Cloud
- تثبيت Python 3.
- تم تثبيت واجهة سطر أوامر gcloud.
إعداد البيئة
يوضح هذا القسم كيفية إنشاء بيئتك المحلية وتهيئتها بالإضافة إلى مشروع 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، انتقِل إلى رمز القائمة > إدارة الهوية وإمكانية الوصول (IAM) والمشرف > إنشاء مشروع.
-
في حقل اسم المشروع، أدخِل اسمًا وصفيًا لمشروعك.
اختياري: لتعديل رقم تعريف المشروع، انقر على تعديل. لا يمكن تغيير رقم تعريف المشروع. بعد إنشاء المشروع، لذا اختر رقم تعريف يلبي احتياجاتك طوال مشروعك.
- في حقل الموقع الجغرافي، انقر على تصفّح لعرض المواقع الجغرافية المحتمَلة. مشروعك. بعد ذلك، انقر على اختيار.
- انقر على إنشاء. تنتقل Google Cloud Console إلى صفحة "لوحة البيانات" ويتم إنشاء مشروعك. في غضون بضع دقائق.
gcloud CLI
في إحدى بيئات التطوير التالية، يمكنك الوصول إلى Google Cloud واجهة سطر الأوامر (`gcloud`):
-
Cloud Shell: لاستخدام وحدة طرفية على الإنترنت مع gcloud CLI
سبق أن تم إعداده، يُرجى تفعيل Cloud Shell.
تفعيل Cloud Shell -
Local Shell: لاستخدام بيئة تطوير محلية،
تثبيت
الإعداد
واجهة سطر الأوامر gcloud.
لإنشاء مشروع على السحابة الإلكترونية، استخدِم الأمر `gcloud project create`: استبدِل PROJECT_ID من خلال ضبط رقم تعريف المشروع الذي تريد إنشاءه.gcloud projects create PROJECT_ID
تفعيل الفوترة لمشروع Google Cloud
وحدة التحكّم في Google Cloud
- في وحدة تحكُّم Google Cloud، انتقِل إلى الفوترة. (يُرجى النقر.) قائمة الطعام > الفوترة > مشاريعي.
- في اختيار مؤسسة، اختَر المؤسسة المرتبطة بمشروعك على Google Cloud.
- في صف المشروع، افتح قائمة الإجراءات. ( ), انقر على تغيير الفوترة، واختر حساب فوترة Cloud.
- انقر على ضبط الحساب.
واجهة سطر الأوامر gcloud
- لسرد حسابات الفوترة المتاحة، شغِّل:
gcloud billing accounts list
- ربط حساب فوترة بمشروع على Google Cloud:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
استبدِل ما يلي:
PROJECT_ID
هو معرّف المشروع لمشروع 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.
- انقر على إنشاء. تظهر شاشة "تم إنشاء عميل 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
في directory directory project بعد الموافقة على الطلب.python3 main.py
إضافة Meet REST API
بعد اكتمال رمز التفويض، حان وقت تفعيل واجهة برمجة التطبيقات Meet REST API والاتصال بها.
تفعيل واجهات برمجة التطبيقات
على الرغم من أنّ هذا القسم يركّز على Meet REST API، تستخدم هذه المقالة التعليمية أيضًا Google Cloud Pub/Sub وGoogle Workspace Events API.
وحدة التحكّم في Google Cloud
في "وحدة تحكُّم Google Cloud"، فعِّل واجهة برمجة التطبيقات Google Meet REST API Google Workspace Events API وGoogle Cloud Pub/Sub.
تأكَّد من أنّك تفعّل واجهات برمجة التطبيقات في مشروع Cloud الصحيح، ثم انقر على التالي.
تأكَّد من تفعيل واجهات برمجة التطبيقات الصحيحة، ثم انقر على تفعيل.
واجهة سطر الأوامر gcloud
إذا لزم الأمر، اضبط المشروع الحالي على السحابة الإلكترونية على المشروع تم إنشاؤه باستخدام الأمر
gcloud config set project
:gcloud config set project PROJECT_ID
استبدِل PROJECT_ID برقم تعريف المشروع المشروع الذي أنشأته على السحابة الإلكترونية
فعِّل Google Meet REST API و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 API
اتّبِع الخطوات التالية لتثبيت مكتبة برامج واجهة برمجة التطبيقات Meet REST API:
شغِّل الأمر التالي:
pip install google-apps-meet
عدِّل ملف
main.py
لاستيراد البرنامج:from google.apps import meet_v2 as meet
إنشاء مساحة
بعد توفّر Meet REST API، حدِّد دالة لإنشاء مساحة اجتماع يمكن الاشتراك فيها.
تعديل "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، انتقِل إلى القائمة > النشر/الاشتراك.
تأكَّد من اختيار مشروع Cloud لتطبيقك.
.
- انقر على
- أدخِل
workspace-events
كاسم الموضوع. - اترك خيار إضافة اشتراك تلقائي محدّدًا.
- انقر على إنشاء. يتم تنسيق اسم الموضوع الكامل على النحو التالي:
projects/{project}/topics/{topic}
. تدوين ملاحظة من هذا الاسم لاستخدامه في خطوات لاحقة.
إنشاء موضوع ونفِّذ
التالي:
- أدخِل
- امنح إمكانية الوصول لنشر رسائل Pub/Sub على موضوعك:
- في اللوحة الجانبية، افتح علامة التبويب الأذونات.
- انقر على إضافة مدير رئيسي.
- في العناصر الرئيسية الجديدة، أدخِل
meet-api-event-push@system.gserviceaccount.com
. - في تعيين الأدوار، اختَر
Pub/Sub Publisher
. - انقر على حفظ.
يمكن أن يستغرق تعديل الأذونات لموضوعك بضع دقائق.
واجهة سطر الأوامر gcloud
- في مشروعك على 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}
هي
رقم تعريف مشروع تطبيقك على Google Cloud ستستخدم اسم الموضوع لإنشاء
في Google Workspace لاحقًا.
إنشاء حساب خدمة
وحدة التحكّم في Google Cloud
- في وحدة التحكّم في Google Cloud، انتقِل إلى القائمة > إدارة الهوية وإمكانية الوصول و المشرف > حسابات الخدمة. .
- انقر على إنشاء حساب خدمة.
- أدخِل تفاصيل حساب الخدمة، ثم انقر على إنشاء ومتابعة.
- اختياري: يمكنك تعيين أدوار لحساب الخدمة لمنح الإذن بالوصول إلى موارد مشروعك على Google Cloud. لمزيد من التفاصيل، يُرجى الرجوع إلى مقالة منح إمكانية الوصول إلى الموارد وتغييرها وإبطالها.
- انقر على متابعة.
- اختياري: أدخِل المستخدمين أو المجموعات التي يمكنها إدارة الإجراءات وتنفيذها باستخدام حساب الخدمة هذا. لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة إدارة انتحال هوية حساب الخدمة.
- انقر على تم. دوِّن عنوان البريد الإلكتروني لحساب الخدمة.
واجهة سطر الأوامر gcloud
- أنشئ حساب الخدمة:
gcloud iam service-accounts create meet-event-listener \ --display-name="meet-event-listener"
- اختياري: يمكنك تعيين أدوار لحساب الخدمة لمنح الإذن بالوصول إلى موارد مشروعك على Google Cloud. لمزيد من التفاصيل، يُرجى الاطّلاع على منح إذن الوصول إلى الموارد وتغييره وإبطاله.
استخدام حساب الخدمة
بعد إنشاء حساب الخدمة، امنح نفسك حق الوصول لانتحال هوية حساب حساب الخدمة الخاص بك.
وحدة التحكّم في Google Cloud
- في عمود الإجراءات لحساب الخدمة الذي تمّ إنشاؤه حديثًا، انقر على > إدارة الأذونات.
- انقر على إضافة مفتاح. > منح إمكانية الوصول.
- أدخِل عنوان بريدك الإلكتروني ضمن إضافة عناصر أساسية.
- اختَر حسابات الخدمة > منشئ الرموز المميّزة لحساب الخدمة. الوظيفة.
- انقر على حفظ.
- ارجع إلى الوحدة الطرفية وسجِّل الدخول باستخدام
gcloud
لضبط بيانات الاعتماد التلقائية للتطبيق على حساب الخدمة الخاص بك. عندما يُطلب منك الحصول على إذن، سجِّل الدخول باستخدام المستخدم في الخطوات السابقة.gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
واجهة سطر الأوامر gcloud
- لإضافة الإذن، شغِّل "
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 auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
تثبيت مكتبة برامج النشر/الاشتراك
استخدِم
pip
لتثبيت مكتبة البرامج للنشر/الاشتراك: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 API لسحب الحدثَين عند توفّرهما. تطبع طرق المعالج المختلفة المعلومات
عن الأحداث المقابلة.
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
: رقم التعريف الفريد للمشروع على Cloud في النطاق تطبيقك، مثلmy-sample-project-191923
.TOPIC_ID
: اسم موضوع النشر/الاشتراك الذي أجريته التي تم إنشاؤها في مشروعك على Google Cloud.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 API، جرِّب تعديل التطبيق لتنفيذ هذه الإجراءات الإضافية مناسبة.
- استخدام People API لاسترداد معلومات إضافية عن المشاركين الذين سجّلوا دخولهم.
- استخدام Google Drive API لتنزيل التسجيلات والنصوص.
- بدلاً من تنزيل النصوص من Google Drive، يمكنك استردادها باستخدام النص المنظم الطرق في Meet REST API.
اختياري: تنظيف
لتجنُّب تحمُّل أي رسوم من حسابك على Google Cloud Console مقابل الموارد المستخدم في هذا البرنامج التعليمي، فننصحك بتنظيف أي موارد ومشاريع إنشاء.
لحذف الاشتراك:
وحدة التحكّم
في وحدة تحكّم Google Cloud، انتقِل إلى رمز القائمة > Pub/Sub > الاشتراكات.
اختَر الاشتراك وانقر على
مزيد من الإجراءات:انقر على حذف. ستظهر نافذة حذف الاشتراك.
انقر على حذف.
gcloud CLI
حذف الاشتراك:
gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
لحذف الموضوع:
وحدة التحكّم
في وحدة التحكّم في Google Cloud، انتقِل إلى "القائمة". > نشر/اشتراك > المواضيع
حدد الموضوع وانقر على
مزيد من الإجراءات:انقر على حذف. ستظهر نافذة حذف الموضوع.
أدخِل
delete
ثم انقر على حذف.
واجهة سطر الأوامر gcloud
لحذف الموضوع، اتّبِع الخطوات التالية:
gcloud pubsub topics delete TOPIC_NAME
لحذف المشروع:
وحدة التحكّم
- في وحدة تحكُّم Google Cloud، انتقِل إلى صفحة إدارة الموارد. (يُرجى النقر.) قائمة الطعام > إدارة الهوية وإمكانية الوصول و المشرف > إدارة الموارد.
- في قائمة المشاريع، اختَر المشروع الذي تريد حذفه ثم انقر على حذف .
- في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على إيقاف لحذف المشروع.
واجهة سطر الأوامر gcloud
لحذف مشروع، استخدِم مشاريع gcloud. حذف :
gcloud projects delete PROJECT_ID
مواضيع ذات صلة
- يمكنك معرفة المزيد عن أنواع أحداث Meet التي يمكنك الاشتراك فيها.
- يمكنك الاطّلاع على مزيد من المعلومات حول الإجراءات التي يمكن لواجهة برمجة تطبيقات Google Meet REST تنفيذها. يُرجى مراجعة المستندات المرجعية.
- إنشاء اشتراك Google Workspace إلى مساحات اجتماعات Meet أو المستخدمين الذين يستخدمون واجهة برمجة التطبيقات لفعاليات Google Workspace
- لمزيد من المعلومات حول المصادقة، يمكنك الاطّلاع على ضبط شاشة موافقة OAuth. واختيار النطاقات