במדריך הזה נסביר איך להשתמש ב-API ל-REST של Google Meet יחד עם 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 מותקנת.
- CLI של 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, עוברים לתפריט > IAM & Admin > Create a Project.
-
בשדה Project Name, מזינים שם תיאורי לפרויקט.
אופציונלי: כדי לערוך את Project ID, לוחצים על Edit. אי אפשר לשנות את מזהה הפרויקט אחרי היצירה שלו, לכן חשוב לבחור מזהה שיעמוד בצרכים שלכם לכל משך חיי הפרויקט.
- בשדה Location, לוחצים על Browse כדי להציג מיקומים פוטנציאליים לפרויקט. לאחר מכן לוחצים על בחירה.
- לוחצים על יצירה. מסוף Google Cloud מנווט לדף Dashboard והפרויקט נוצר תוך כמה דקות.
CLI של gcloud
ניגשים ל-CLI של Google Cloud (gcloud
) באחת מסביבות הפיתוח הבאות:
-
Cloud Shell: כדי להשתמש בטרמינל אונליין שבו כבר מוגדר ה-CLI של gcloud, צריך להפעיל את Cloud Shell.
הפעלת Cloud Shell -
מעטפת מקומית: כדי להשתמש בסביבת פיתוח מקומית צריך להתקין ולהפעיל את ה-CLI של gcloud.
כדי ליצור פרויקט ב-Cloud, משתמשים בפקודהgcloud projects create
:gcloud projects create PROJECT_ID
הפעלת החיוב בפרויקט ב-Google Cloud
מסוף Google Cloud
- נכנסים לדף Billing במסוף Google Cloud. לוחצים על תפריט > חיוב > הפרויקטים שלי.
- בקטע Select an organization, בוחרים את הארגון שמשויך לפרויקט ב-Google Cloud.
- בשורת הפרויקט, פותחים את התפריט Actions ( ), לוחצים על Change billing ובוחרים את החשבון לחיוב ב-Cloud.
- לוחצים על Set account.
CLI של 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 API ל-REST. כדי לבצע קריאה ל-API ל-REST של Meet, נדרשת הרשאת משתמש. בקטע הזה מוסבר איך להגדיר את פרטי הכניסה של המשתמש ולבקש הרשאה.
הגדרת מסך ההסכמה של OAuth ובחירת היקפי ההרשאות
בשלבים הבאים מוצגים פרטי placeholder להגדרת מסך ההסכמה של OAuth באפליקציה. לפני פרסום האפליקציה באופן חיצוני, צריך לעדכן את הפרטים האלה.
- במסוף Google Cloud, נכנסים לתפריט > APIs & Services > OAuth consent screen.
- בקטע User type (סוג משתמש), בוחרים באפשרות Internal (פנימי) ולוחצים על Create (יצירה).
- בשדה App name, מזינים
Meet REST API Tutorial
. - ממלאים את טופס הרישום של האפליקציה ולוחצים על שמירה והמשך.
- לוחצים על הוספה או הסרה של היקפים. תוצג חלונית עם רשימת ההיקפים לכל ממשק API שהפעלתם בפרויקט ב-Google Cloud.
- בקטע הוספת היקפים באופן ידני, מדביקים את ההיקפים הבאים:
https://www.googleapis.com/auth/meetings.space.created
- לוחצים על הוספה לטבלה.
- לוחצים על עדכון.
- אחרי שבוחרים את ההיקפים הנדרשים לאפליקציה, לוחצים על Save and Continue (שמירה והמשך).
- אם בחרתם באפשרות חיצוני לסוג המשתמש, מוסיפים משתמשי בדיקה:
- בקטע Test users, לוחצים על Add users.
- מזינים את כתובת האימייל שלכם ואת כתובות האימייל של משתמשי הבדיקה המורשים האחרים, ולוחצים על Save and Continue (שמירה והמשך).
- בודקים את סיכום רישום האפליקציה. כדי לבצע שינויים, לוחצים על עריכה. אם הרשמת האפליקציה נראית תקינה, לוחצים על Back to Dashboard.
יצירת מזהה לקוח
מזהה הלקוח משמש כפרטי כניסה לאפליקציה במהלך תהליכי OAuth 2.0. מכיוון שהאפליקציה פועלת באופן מקומי, צריך ליצור מזהה לקוח למחשב.
- במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.
- לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).
- לוחצים על Application type (סוג האפליקציה) > Desktop app (אפליקציה למחשב).
- בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
- לוחצים על יצירה. יופיע המסך 'לקוח OAuth נוצר', שבו יוצגו מזהה הלקוח וסוד הלקוח החדשים.
- לוחצים על אישור. פרטי הכניסה שנוצרו מופיעים בקטע מזהי לקוח OAuth 2.0.
התקנת ספריות האימות של Google
מתקינים את ספריות האימות של Google:
pip install google-auth google-auth-oauthlib
ביצוע ההרשאה
כדי להשתמש ב-Meet API ל-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
הוספת ה-API ל-REST של Meet
עכשיו, אחרי שקוד האישור הושלם, הגיע הזמן להפעיל את ה-API ל-REST של Meet ולקרוא לו.
הפעלת ממשקי ה-API
הקטע הזה מתמקד ב-API ל-REST של Meet, אבל במדריך הזה נעשה שימוש גם ב-Google Cloud Pub/Sub וב-Google Workspace Events API.
מסוף Google Cloud
במסוף Google Cloud, מפעילים את Google Meet REST API, את Google Workspace Events API ואת Google Cloud Pub/Sub.
מוודאים שאתם מפעילים את ממשקי ה-API בפרויקט הנכון ב-Cloud ולוחצים על הבא.
מוודאים שאתם מפעילים את ממשקי ה-API הנכונים ולוחצים על Enable.
CLI של gcloud
אם צריך, מגדירים את הפרויקט הנוכחי ב-Cloud כפרויקט שיצרתם באמצעות הפקודה
gcloud config set project
:gcloud config set project PROJECT_ID
מחליפים את PROJECT_ID במזהה הפרויקט של הפרויקט ב-Cloud שיצרתם.
מפעילים את 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 API ל-REST:
מריצים את הפקודה:
pip install google-apps-meet
עורכים את הקובץ
main.py
כדי לייבא את הלקוח:from google.apps import meet_v2 as meet
יצירת מרחב משותף
עכשיו, כשה-API ל-REST של Meet זמין, אפשר להגדיר פונקציה ליצירת מרחב משותף לישיבות שאפשר להירשם אליו.
עורכים את 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
כדי ליצור נושא Pub/Sub ולהירשם אליו:
מסוף Google Cloud
- במסוף Google Cloud, עוברים לתפריט > Pub/Sub.
מוודאים שבחרתם את הפרויקט ב-Cloud של האפליקציה.
- לוחצים על
- מזינים את
workspace-events
בתור שם הנושא. - משאירים את האפשרות הוספת מינוי ברירת מחדל מסומנת.
- לוחצים על יצירה. שם הנושא המלא מעוצב כך:
projects/{project}/topics/{topic}
. חשוב לזכור את השם הזה, כי תצטרכו להשתמש בו בשלבים הבאים.
Create topic ומבצעים את הפעולות הבאות:
- מזינים את
- מעניקים גישה לפרסום הודעות Pub/Sub בנושא:
- בחלונית הצדדית, פותחים את הכרטיסייה Permissions.
- לוחצים על Add Principal.
- בשדה New principals, מזינים
meet-api-event-push@system.gserviceaccount.com
. - בקטע Assign roles (הקצאת תפקידים), בוחרים באפשרות
Pub/Sub Publisher
. - לוחצים על שמירה.
עדכון ההרשאות לנושא עשוי להימשך כמה דקות.
CLI של gcloud
- יוצרים נושא בפרויקט ב-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'
עדכון ההרשאות לנושא עשוי להימשך כמה דקות.
- יוצרים מינוי ל-Pub/Sub לנושא:
gcloud pubsub subscriptions create workspace-events-sub --topic=TOPIC_NAME
מחליפים את מה שכתוב בשדות הבאים:
TOPIC_NAME
: השם של הנושא שיצרתם בשלב הקודם.
שימו לב לשם הנושא וודאו שהערך של {project}
הוא מזהה הפרויקט ב-Cloud של האפליקציה. שם הנושא ישמש אתכם מאוחר יותר ליצירת המינוי ל-Google Workspace.
יצירה של חשבון שירות
מסוף Google Cloud
- במסוף Google Cloud, עוברים לתפריט > IAM & Admin > Service Accounts.
- לוחצים על Create service account.
- ממלאים את פרטי חשבון השירות ולוחצים על Create and continue (יצירה והמשך).
- אופציונלי: מקצים תפקידים לחשבון השירות כדי לתת גישה למשאבים של הפרויקט ב-Google Cloud. פרטים נוספים זמינים במאמר הענקה, שינוי וביטול גישה למשאבים.
- לוחצים על המשך.
- אופציונלי: מזינים משתמשים או קבוצות שיכולים לנהל את חשבון השירות הזה ולבצע בו פעולות. פרטים נוספים זמינים במאמר ניהול התחזות לחשבון שירות.
- לוחצים על סיום. כותבים את כתובת האימייל של חשבון השירות.
CLI של gcloud
- יוצרים את חשבון השירות:
gcloud iam service-accounts create meet-event-listener \ --display-name="meet-event-listener"
- אופציונלי: מקצים תפקידים לחשבון השירות כדי לתת גישה למשאבים של הפרויקט ב-Google Cloud. פרטים נוספים זמינים במאמר הענקה, שינוי וביטול גישה למשאבים.
שימוש בחשבון השירות
אחרי שיוצרים את חשבון השירות, מקצים לעצמכם הרשאת גישה להתחזות לחשבון השירות.
מסוף Google Cloud
- בעמודה Actions של חשבון השירות החדש שנוצר, לוחצים על > Manage permissions.
- לוחצים על Add key > Grant access.
- מזינים את כתובת האימייל בקטע Add principals.
- בוחרים את התפקיד Service accounts > Service Account Token Creator.
- לוחצים על שמירה.
- חוזרים למסוף ונכנסים באמצעות
gcloud
כדי להגדיר את פרטי הכניסה שמוגדרים כברירת מחדל באפליקציה לחשבון השירות. כשמוצגת בקשה לאישור, נכנסים לאותו חשבון שבו השתמשתם בשלבים הקודמים.gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
CLI של 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
התקנה של ספריית הלקוח של Pub/Sub
משתמשים ב-
pip
כדי להתקין את ספריית הלקוח של Pub/Sub:pip install google-cloud-pubsub
לאחר מכן עורכים את
main.py
כדי לייבא את הלקוח:from google.cloud import pubsub_v1
יצירת המינוי ל-Google Workspace
מוסיפים את הקוד הבא ל-main.py
כדי להגדיר שיטה להרשמה לאירועים ב-Meet. הקוד הזה מאפשר להירשם לכל האירועים במרחב הפגישות. כשנרשמים, האירועים מתפרסמים בנושא Pub/Sub.
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
: השם של נושא ה-Pub/Sub שיצרתם בפרויקט ב-Cloud.SUBSCRIPTION_ID
: השם של המינוי, למשלworkspace-events-sub
.
מריצים את התוכנית:
python3 main.py
אם לא הפעלתם את התוכנית בעבר, תופיע בקשה לאישור בפעם הראשונה. נותנים לאפליקציה הרשאת גישה לקריאה ל-API ל-REST של Meet. אחרי שהתוכנית תפעל בהצלחה, הפלט אמור להיראות כך:
Join the meeting at https://meet.google.com/abc-mnop-xyz
הצטרפות לוועידה
כדי ליצור אירועים לאפליקציה, צריך להצטרף לכנס באמצעות ה-URL שמוצג באפליקציה. אחרי ההצטרפות, תוכלו לנסות את הפעולות הבאות כדי להפעיל אירועים:
- יוצאים מהפגישה ומצטרפים אליה מחדש.
- מזמינים אנשים או מתחברים בטלפון.
- מפעילים את ההקלטות והתמלילים.
כל אחת מהפעילויות האלה יוצרת אירוע שהאפליקציה מקבלת ומתעדת במסוף Google Cloud.
כדי להפסיק את התוכנית בסיום, מקישים על ctrl-c
.
אופציונלי: שלבים נוספים שאפשר לנסות
האפליקציה מתעדת ביומן פרטים בסיסיים על האירועים. כדי להמשיך לבדוק את Meet API ל-REST, נסו לשנות את האפליקציה כדי לבצע את הפעולות הנוספות האלה.
- אפשר להשתמש ב-People API כדי לאחזר מידע נוסף על משתתפים שנכנסו לחשבון.
- משתמשים ב-Google Drive API כדי להוריד הקלטות ותמלילים.
- במקום להוריד תמלילים מ-Google Drive, אפשר לאחזר אותם באמצעות השיטות של תמלילים מובְנים ב-API ל-REST של Meet.
אופציונלי: ניקוי
כדי להימנע מחיובים בחשבון במסוף Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, מומלץ למחוק את כל המשאבים והפרויקטים שנוצרו.
כדי למחוק את המינוי:
המסוף
במסוף Google Cloud, נכנסים לתפריט > Pub/Sub > Subscriptions
בוחרים את המינוי ולוחצים על
עוד פעולות.לוחצים על מחיקה. החלון Delete subscription יופיע.
לוחצים על מחיקה.
CLI של gcloud
מוחקים את המינוי:
gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
כדי למחוק את הנושא:
המסוף
במסוף Google Cloud, נכנסים לתפריט > Pub/Sub > Topics.
בוחרים את הנושא ולוחצים על
עוד פעולות.לוחצים על מחיקה. החלון Delete topic יופיע.
מזינים
delete
ולוחצים על Delete.
CLI של gcloud
מוחקים את הנושא:
gcloud pubsub topics delete TOPIC_NAME
כדי למחוק את הפרויקט:
המסוף
- במסוף Google Cloud, עוברים לדף Manage resources. לוחצים על תפריט > IAM & Admin > Manage Resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete .
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
CLI של gcloud
כדי למחוק פרויקט, משתמשים בפקודה gcloud projects delete:
gcloud projects delete PROJECT_ID
נושאים קשורים
- מידע על סוגי האירועים ב-Meet שאפשר להירשם אליהם
- מידע נוסף על מה שאפשר לעשות באמצעות ה-API ל-REST של Google Meet ומאמרי העזרה.
- יצירת מינוי ל-Google Workspace למרחבים משותפים לפגישות או למשתמשים ב-Meet באמצעות Google Workspace Events API.
- מידע נוסף על אימות זמין במאמר הגדרת מסך ההסכמה ל-OAuth ובחירת היקפי הרשאה.