इस ट्यूटोरियल में, Google Meet REST API को इस्तेमाल करने का तरीका बताया गया है. इवेंट पर नज़र रखने और उन पर प्रतिक्रिया देने के लिए, Google Workspace Events API और Google Cloud Pub/Sub का इस्तेमाल किया जा सकता है. आवेदन का नमूना तब रिकॉर्ड होता है, जब कॉन्फ़्रेंस के शुरू और खत्म होने का समय, हिस्सा लेने वाले लोगों के शामिल होने या छोड़ने, और किसी भी समय जनरेट किए गए मीटिंग आर्टफ़ैक्ट भी उपलब्ध हैं.
किसी खास मीटिंग स्पेस की सदस्यता लेने के बजाय, आप उसकी सदस्यता ले सकते हैं किसी Meet उपयोगकर्ता को मीटिंग की उस जगह के इवेंट की जानकारी मिलेगी उपयोगकर्ता का मालिक है या उसे व्यवस्थित करता है. जानकारी के लिए, यह देखें Google Meet इवेंट की सदस्यता लेना देखें.
ज़रूरी शर्तें
अगर आपको अपने संगठन के लिए, इनमें से किसी भी शर्त को चालू करना है, तो इनसे संपर्क करें आपका 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 सीएलआई
यहां दिए गए डेवलपमेंट एनवायरमेंट में से किसी एक में, Google Cloud को ऐक्सेस करें सीएलआई (`gcloud`):
-
Cloud Shell: gcloud सीएलआई के साथ ऑनलाइन टर्मिनल का इस्तेमाल करने के लिए
पहले से सेट अप है, तो Cloud Shell को चालू करें.
Cloud Shell चालू करें -
लोकल शेल: लोकल डेवलपमेंट एनवायरमेंट का इस्तेमाल करने के लिए,
इंस्टॉल करें और
शुरू करें
gcloud सीएलआई.
Cloud प्रोजेक्ट बनाने के लिए, `gcloud प्रोजेक्ट create`कमांड का इस्तेमाल करें:gcloud projects create PROJECT_ID
Google Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू करना
Google Cloud कंसोल
- Google Cloud Console में, बिलिंग पर जाएं. क्लिक करें मेन्यू > बिलिंग > मेरे प्रोजेक्ट पर क्लिक करें.
- संगठन चुनें में जाकर, उस संगठन को चुनें जिससे जुड़ा है आपका Google 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 API को ऐक्सेस कर सकता है संसाधन. Meet REST API को कॉल करने के लिए, उपयोगकर्ता की अनुमति ज़रूरी है. इस सेक्शन में, उपयोगकर्ता के क्रेडेंशियल कॉन्फ़िगर करने और अनुरोध करने का तरीका बताया गया है अनुमति.
उस स्क्रीन को कॉन्फ़िगर करें जहां OAuth के लिए सहमति दी जाती है और दायरे चुनें
नीचे दिए गए चरण, कॉन्फ़िगर करने के लिए प्लेसहोल्डर की जानकारी का सुझाव देते हैं इसके लिए, OAuth की सहमति वाली स्क्रीन आपका ऐप्लिकेशन. ऐप्लिकेशन को संगठन से बाहर पब्लिश करने से पहले, इस जानकारी को अपडेट करें.
- Google Cloud Console में, मेन्यू > एपीआई और सेवाएं > OAuth की सहमति वाली स्क्रीन. पर जाएं
- उपयोगकर्ता टाइप में जाकर, इंटरनल चुनें. इसके बाद, बनाएं पर क्लिक करें.
- ऐप्लिकेशन के नाम में
Meet REST API Tutorial
डालें. - ऐप्लिकेशन रजिस्ट्रेशन फ़ॉर्म भरें. इसके बाद, सेव करें और जारी रखें पर क्लिक करें.
- स्कोप जोड़ें या हटाएं पर क्लिक करें. दायरों की सूची के साथ एक पैनल दिखता है हर एपीआई के लिए उपलब्ध है जिसे आपने Google Cloud प्रोजेक्ट में चालू किया है.
- मैन्युअल तरीके से स्कोप जोड़ें में जाकर, इन स्कोप को चिपकाएं:
https://www.googleapis.com/auth/meetings.space.created
- टेबल में जोड़ें पर क्लिक करें.
- अपडेट करें पर क्लिक करें.
- ज़रूरी स्कोप चुनने के बाद अपने ऐप्लिकेशन के मुताबिक, सेव करें और जारी रखें पर क्लिक करें.
- अगर आपने उपयोगकर्ता टाइप के हिसाब से बाहरी उपयोगकर्ता विकल्प चुना है, तो टेस्ट उपयोगकर्ता जोड़ें:
- टेस्ट के उपयोगकर्ता सेक्शन में जाकर, उपयोगकर्ताओं को जोड़ें पर क्लिक करें.
- अपना ईमेल पता और टेस्ट के लिए अनुमति पा चुके किसी उपयोगकर्ता की जानकारी डालें. इसके बाद, क्लिक करें सेव करें और आगे बढ़ें.
- अपने ऐप्लिकेशन रजिस्ट्रेशन की खास जानकारी देखें. बदलाव करने के लिए, बदलाव करें पर क्लिक करें. अगर ऐप्लिकेशन पंजीकरण के लिए ठीक लगता है, तो डैशबोर्ड पर वापस जाएं पर क्लिक करें.
क्लाइंट आईडी बनाना
OAuth 2.0 के दौरान क्लाइंट आईडी, आपके ऐप्लिकेशन के लिए क्रेडेंशियल के तौर पर काम करता है फ़्लो. ऐप्लिकेशन लोकल कैंपेन में चलता है, इसलिए डेस्कटॉप का क्लाइंट आईडी बनाएं.
- Google Cloud Console में, मेन्यू > एपीआई और सेवाएं > क्रेडेंशियल.
- क्रेडेंशियल बनाएं > OAuth क्लाइंट आईडी पर क्लिक करें.
- ऐप्लिकेशन टाइप > डेस्कटॉप ऐप्लिकेशन पर क्लिक करें.
- नाम फ़ील्ड में, क्रेडेंशियल के लिए कोई नाम लिखें. यह नाम सिर्फ़ Google Cloud Console में दिखता है.
- बनाएं पर क्लिक करें. OAuth क्लाइंट की बनाई गई स्क्रीन दिखेगी. इसमें आपका नया क्लाइंट आईडी और क्लाइंट सीक्रेट दिखेगा.
- ठीक है पर क्लिक करें. नया क्रेडेंशियल, OAuth 2.0 क्लाइंट आईडी के तहत दिखता है.
Google की पुष्टि करने वाली लाइब्रेरी इंस्टॉल करें
Google की पुष्टि करने वाली लाइब्रेरी इंस्टॉल करें:
pip install google-auth google-auth-oauthlib
अनुमति देने की प्रक्रिया लागू करें
Meet REST API का इस्तेमाल करने के लिए, 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 API जोड़ें
अब जब प्राधिकरण कोड पूरा हो गया है, इसलिए अब समय है सक्षम करें और कॉल करें REST API के बारे में जानें.
एपीआई चालू करें
इस सेक्शन में Meet REST API पर आधारित है, लेकिन इस ट्यूटोरियल में 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.
पुष्टि करें कि एपीआई को सही तरीके से चालू किया जा रहा है Cloud प्रोजेक्ट चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
पुष्टि करें कि आपने सही एपीआई चालू किए हैं. इसके बाद, चालू करें पर क्लिक करें.
gcloud सीएलआई
अगर ज़रूरी हो, तो मौजूदा Cloud प्रोजेक्ट को अपने प्रोजेक्ट पर सेट करें
gcloud config set project
निर्देश का इस्तेमाल करके बनाया गया:gcloud config set project PROJECT_ID
PROJECT_ID को इसके प्रोजेक्ट आईडी से बदलें आपका बनाया हुआ क्लाउड प्रोजेक्ट.
यह नीति Google Meet REST API, Google Workspace Events API, और
gcloud services enable
निर्देश के साथ Google Cloud Pub/Sub: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 इवेंट एपीआई. आपको एक सदस्यता भी बनानी होगी और Google Cloud Pub/Sub विषय, सूचना एंडपॉइंट के तौर पर काम करता है ऐप्लिकेशन को इवेंट मिलते हैं.
Google Cloud Pub/Sub को कॉन्फ़िगर करना
कोई Pub/Sub विषय बनाने और उसकी सदस्यता लेने के लिए:
Google Cloud कंसोल
- Google Cloud Console में, मेन्यू > Pub/Sub पर जाएं.
पक्का करें कि आपके ऐप्लिकेशन के लिए Cloud प्रोजेक्ट चुना गया हो.
पर जाएं
- विषय के नाम के तौर पर
workspace-events
डालें. - डिफ़ॉल्ट सदस्यता जोड़ें को चुना हुआ रहने दें.
- बनाएं पर क्लिक करें. आपका पूरा विषय नाम इस प्रारूप में है
projects/{project}/topics/{topic}
. नोट बनाना डालें.
विषय बनाएं पर क्लिक करें. इसके बाद,
फ़ॉलो किया जा रहा है:
- विषय के नाम के तौर पर
- अपने विषय के लिए, Pub/Sub मैसेज पब्लिश करने का ऐक्सेस दें:
- साइड पैनल पर मौजूद, अनुमतियां टैब.
- प्रिंसिपल जोड़ें पर क्लिक करें.
- नए प्रिंसिपल में,
meet-api-event-push@system.gserviceaccount.com
डालें. - भूमिकाएं असाइन करें में जाकर,
Pub/Sub Publisher
चुनें. - सेव करें पर क्लिक करें.
आपके विषय के लिए अनुमतियों को अपडेट होने में कुछ मिनट लग सकते हैं.
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 Console में, मेन्यू > IAM और एडमिन > सेवा खाते. पर जाएं
- सेवा खाता बनाएं पर क्लिक करें.
- सेवा खाते की जानकारी भरें. इसके बाद, बनाएं और जारी रखें पर क्लिक करें.
- ज़रूरी नहीं: 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
Pub/Sub क्लाइंट लाइब्रेरी इंस्टॉल करना
Pub/Sub की क्लाइंट लाइब्रेरी इंस्टॉल करने के लिए,
pip
का इस्तेमाल करें: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 एपीआई का इस्तेमाल करता है
साथ ही, इवेंट भी उपलब्ध होते हैं. जानकारी को प्रिंट करने के लिए, हैंडलर के अलग-अलग तरीके
की जानकारी मिलती है.
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
अगर आपने पहले कभी प्रोग्राम नहीं चलाया है, तो यह पहली बार. Meet REST API को कॉल करने के लिए, ऐप्लिकेशन को ऐक्सेस दें. प्रोग्राम के सही से चलने के बाद, आपको इससे मिलता-जुलता आउटपुट दिखेगा:
Join the meeting at https://meet.google.com/abc-mnop-xyz
कॉन्फ़्रेंस में शामिल हों
ऐप्लिकेशन के लिए इवेंट जनरेट करने के लिए, इस यूआरएल का इस्तेमाल करके कॉन्फ़्रेंस में शामिल हों ऐप्लिकेशन द्वारा प्रदर्शित. शामिल होने के बाद, ये कार्रवाइयां की जा सकती हैं: ट्रिगर इवेंट:
- मीटिंग छोड़ें और फिर से शामिल हों.
- दूसरे लोगों को न्योता भेजें या अपने फ़ोन से डायल इन करें.
- रिकॉर्डिंग और ट्रांसक्रिप्ट की सुविधा चालू करें.
इनमें से हर गतिविधि एक इवेंट जनरेट करती है जो ऐप्लिकेशन को मिलता है और Google Cloud Console में लॉग करता है.
जब आप पूरा कर लें, तो प्रोग्राम को रोकने के लिए ctrl-c
का इस्तेमाल करें.
ज़रूरी नहीं: इसे आज़माने के लिए दूसरे तरीके
यह ऐप्लिकेशन, इवेंट के बारे में बुनियादी जानकारी लॉग करता है. एक्सप्लोर करना जारी रखने के लिए, REST API देखें, इन अतिरिक्त सुविधाओं का इस्तेमाल करने के लिए, ऐप्लिकेशन में बदलाव करें कार्रवाइयां.
- इसके बारे में ज़्यादा जानकारी पाने के लिए, People API का इस्तेमाल करें वे लोग जिन्होंने साइन-इन किया हुआ है.
- रिकॉर्डिंग डाउनलोड करने के लिए, Google Drive API का इस्तेमाल करें और ट्रांसक्रिप्ट शामिल हैं.
- Google Drive से ट्रांसक्रिप्ट डाउनलोड करने के बजाय, इनका इस्तेमाल करके उन्हें वापस पाएं स्ट्रक्चर्ड ट्रांसक्रिप्ट तरीके के विकल्प मिलते हैं.
ज़रूरी नहीं: स्टोरेज खाली करें
संसाधनों के लिए, आपके Google Cloud Console खाते पर लगने वाले शुल्क से बचने के लिए तो हमारा सुझाव है कि आप उन संसाधनों और प्रोजेक्ट को खाली करें बनाया गया.
सदस्यता मिटाने के लिए:
कंसोल
Google Cloud Console में, मेन्यू पर जाएं > Pub/Sub > सदस्यताएं
सदस्यता चुनें और क्लिक करें
ज़्यादा कार्रवाइयां.मिटाएं पर क्लिक करें. इसके बाद, सदस्यता मिटाएं वाली विंडो दिखेगी.
मिटाएं पर क्लिक करें.
gcloud सीएलआई
सदस्यता मिटाने के लिए:
gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
विषय मिटाने के लिए:
कंसोल
Google Cloud Console में, मेन्यू पर जाएं > Pub/Sub > विषय
विषय चुनें और क्लिक करें
ज़्यादा कार्रवाइयां.मिटाएं पर क्लिक करें. इसके बाद, विषय मिटाएं वाली विंडो दिखेगी.
delete
डालें. इसके बाद, मिटाएं पर क्लिक करें.
gcloud सीएलआई
विषय मिटाएं:
gcloud pubsub topics delete TOPIC_NAME
प्रोजेक्ट मिटाने के लिए:
कंसोल
- Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं. क्लिक करें मेन्यू > IAM और एडमिन > संसाधन मैनेज करें पर क्लिक करें.
- प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे मिटाना है. इसके बाद, क्लिक करें मिटाएं .
- डायलॉग बॉक्स में, प्रोजेक्ट आईडी टाइप करें. इसके बाद, मिटाने के लिए शट डाउन करें पर क्लिक करें को भी शामिल किया है.
gcloud सीएलआई
किसी प्रोजेक्ट को मिटाने के लिए, gcloud प्रोजेक्ट मिटाएं आदेश:
gcloud projects delete PROJECT_ID
मिलते-जुलते विषय
- ज़्यादा जानने के लिए, Meet इवेंट के ऐसे टाइप जिनकी सदस्यता आपके पास है.
- इस बारे में ज़्यादा जानें कि Google Meet REST API क्या कर सकता है और पहचान फ़ाइल को पढ़ें.
- Google Workspace की सदस्यता बनाना का उपयोग कर रहे मीटिंग स्पेस या उपयोगकर्ताओं से Google Workspace इवेंट एपीआई.
- पुष्टि करने के बारे में ज़्यादा जानने के लिए, OAuth की सहमति वाली स्क्रीन को कॉन्फ़िगर करना' लेख पढ़ें और स्कोप चुनें.