यह गाइड बताती है कि इसके Media
संसाधन पर download
तरीके का इस्तेमाल कैसे किया जाए
Google Chat में किसी मैसेज से मीडिया (फ़ाइल) डाउनलोड करने के लिए, Google Chat API का इस्तेमाल करें.
जब उपयोगकर्ता आपके ऐप्लिकेशन पर मैसेज भेजता है, तो Google Chat उसे
MESSAGE
इंटरैक्शन इवेंट.
आपके ऐप्लिकेशन को मिले इंटरैक्शन इवेंट में, अनुरोध का मुख्य हिस्सा शामिल होता है. यह हिस्सा
JSON पेलोड, जिसमें इंटरैक्शन इवेंट दिखाया गया है. इसमें अटैचमेंट भी शामिल है. कॉन्टेंट बनाने
में डेटा इस बात पर निर्भर करता है कि अटैचमेंट
अपलोड किया गया कॉन्टेंट (कोई लोकल फ़ाइल) या Drive पर सेव की गई कोई फ़ाइल. कॉन्टेंट बनाने
Media
संसाधन
Google Chat पर अपलोड की गई फ़ाइल को दिखाता है, जैसे कि इमेज, वीडियो, और दस्तावेज़.
कॉन्टेंट बनाने
Attachment
संसाधन
मीडिया के एक इंस्टेंस को दर्शाता है—एक फ़ाइल—जो किसी मैसेज से अटैच की जाती है. Attachment
संसाधन में अटैचमेंट के बारे में मेटाडेटा शामिल होता है, जैसे
जहां उन्हें सेव किया जाता है.
ज़रूरी शर्तें
Python
- कारोबार या एंटरप्राइज़ Google Workspace खाता, जिसके पास इसका ऐक्सेस है Google Chat.
- अपना एनवायरमेंट सेट अप करें:
- Google Cloud प्रोजेक्ट बनाएं.
- उस स्क्रीन को कॉन्फ़िगर करें जहां OAuth के लिए सहमति दी जाती है.
- Google Chat API को चालू और कॉन्फ़िगर करें. आइकॉन और ब्यौरा जोड़ें.
- इंस्टॉल करें Python Google API क्लाइंट लाइब्रेरी.
- अपने Google Chat API में, पुष्टि करने के तरीके के हिसाब से ऐक्सेस क्रेडेंशियल बनाएं
अनुरोध:
- Chat का इस्तेमाल करने वाले व्यक्ति के तौर पर पुष्टि करने के लिए,
OAuth क्लाइंट आईडी बनाएं
क्रेडेंशियल पर क्लिक करें और क्रेडेंशियल को नाम वाली JSON फ़ाइल के रूप में सेव करें
client_secrets.json
को आपकी स्थानीय डायरेक्ट्री में जोड़ा जा सकता है. - Chat ऐप्लिकेशन के तौर पर पुष्टि करने के लिए,
सेवा खाता बनाएं
क्रेडेंशियल पर क्लिक करें और क्रेडेंशियल को नाम वाली JSON फ़ाइल के रूप में सेव करें
credentials.json
.
- Chat का इस्तेमाल करने वाले व्यक्ति के तौर पर पुष्टि करने के लिए,
OAuth क्लाइंट आईडी बनाएं
क्रेडेंशियल पर क्लिक करें और क्रेडेंशियल को नाम वाली JSON फ़ाइल के रूप में सेव करें
- अनुमति का दायरा इस आधार पर चुनें कि आपको उपयोगकर्ता के तौर पर पुष्टि करनी है या चैट ऐप्लिकेशन.
किसी फ़ाइल अटैचमेंट से डाउनलोड करें
किसी फ़ाइल अटैचमेंट से मीडिया डाउनलोड करने के लिए, इसे अपने अनुरोध:
- उपयोगकर्ता की पुष्टि की मदद से,
chat.messages.readonly
याchat.messages
अनुमति देने का दायरा. के साथ ऐप्लिकेशन की पुष्टि करना,chat.bot
की अनुमति के दायरे की जानकारी दें. - Google Chat के इन तरीकों का इस्तेमाल करें:
- इनमें से किसी एक तरीके को कॉल करके
attachmentDataRef
पाएं:get
तरीका पूरी तरह कैसेAttachment
संसाधन.get
तरीका याlist
तरीका पूरी तरह कैसेMessage
संसाधन.
download
तरीके को कॉल करें पूरी तरह कैसेMedia
संसाधन और पूरी जानकारी देंattachmentDataRef.resourceName
को पहले इस रूप में वापस लाया गया थाmedia.download.resourceName
.
- इनमें से किसी एक तरीके को कॉल करके
यहां दिए गए उदाहरण में, मैसेज के साथ अटैच की गई फ़ाइल डाउनलोड की गई है:
Python
- अपनी वर्किंग डायरेक्ट्री में,
chat_media_and_attachment_download.py
. chat_media_and_attachment_download.py
में यह कोड शामिल करें:import io from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.http import MediaIoBaseDownload # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.messages"] def main(): ''' Authenticates with Chat API via user credentials, then downloads a file attached to a message. ''' # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Download media resource. request = chat.media().download_media( resourceName=RESOURCE_NAME, ) file = io.BytesIO() downloader = MediaIoBaseDownload(file, request) done = False while done is False: status, done = downloader.next_chunk() if status.total_size: print(f'Total size: {status.total_size}') print(f'Download {int(status.progress() * 100)}') if __name__ == '__main__': main()
कोड में,
RESOURCE_NAME
को इससे बदलेंattachmentDataRef.resourceName
है, जिसे आप इनमें से किसी एक को फिर से पा सकते हैं इन तरीकों से मदद पाएं:get
तरीकाAttachment
संसाधन पर जाएं.get
तरीकाMessage
संसाधन पर जाएं.list
तरीकाMessage
संसाधन पर जाएं.
अपनी वर्किंग डायरेक्ट्री में, सैंपल बनाएं और चलाएं:
python3 chat_media_and_attachment_download.py
यह तरीका फ़ाइल के कॉन्टेंट को बाइट के तौर पर दिखाता है.
फ़ाइल का कॉन्टेंट डाउनलोड करने के लिए, इनमें से कोई एक तरीका चुनें:
हमारा सुझाव है कि आप Python में
MediaIoBaseDownload
क्लास, जिसमें डाउनलोड करने के तरीके शामिल हैं को सेक्शन में शामिल करें और कॉन्टेंट को आउटपुट स्ट्रीम में सेव करें.अगर आपको मैन्युअल तरीके से एचटीटीपी अनुरोध करना हो, तो
download
तरीके को कॉल करें और फ़ाइल का वह हिस्सा चुनें जिसे आप बाइटRange
हेडर वाली रेंज—उदाहरण के लिए:Range: bytes=500-999
.
मिलते-जुलते विषय
- अगर मैसेज Drive फ़ाइल है, तो फ़ाइल का ऐक्सेस पाने के लिए Drive API.
- मीडिया को फ़ाइल अटैचमेंट के तौर पर अपलोड करना
- मीडिया को फ़ाइल अटैचमेंट के तौर पर डाउनलोड करना
- मैसेज अटैचमेंट के बारे में मेटाडेटा पाना