Google Chat এ একটি বার্তা থেকে মিডিয়া (একটি ফাইল) ডাউনলোড করতে Google Chat API-এর Media
রিসোর্সে কীভাবে download
পদ্ধতি ব্যবহার করতে হয় তা এই নির্দেশিকাটি ব্যাখ্যা করে।
যখন ব্যবহারকারী আপনার অ্যাপে একটি বার্তা পাঠায়, তখন Google Chat একটি MESSAGE
ইন্টারঅ্যাকশন ইভেন্ট প্রেরণ করে। আপনার অ্যাপের মাধ্যমে প্রাপ্ত ইন্টারঅ্যাকশন ইভেন্টে একটি রিকোয়েস্ট বডি অন্তর্ভুক্ত থাকে, যেটি JSON পেলোড যে কোনো অ্যাটাচমেন্ট সহ ইন্টারঅ্যাকশন ইভেন্টের প্রতিনিধিত্ব করে। সংযুক্তিটি আপলোড করা বিষয়বস্তু (স্থানীয় ফাইল) বা ড্রাইভে সংরক্ষিত ফাইল কিনা তার উপর নির্ভর করে সংযুক্তিতে থাকা ডেটা আলাদা। Media
সংস্থান Google চ্যাটে আপলোড করা একটি ফাইলকে উপস্থাপন করে, যেমন ছবি, ভিডিও এবং নথি। Attachment
সংস্থান মিডিয়ার একটি উদাহরণ উপস্থাপন করে - একটি ফাইল - একটি বার্তার সাথে সংযুক্ত৷ Attachment
সংস্থান সংযুক্তি সম্পর্কে মেটাডেটা অন্তর্ভুক্ত করে, যেমন এটি কোথায় সংরক্ষণ করা হয়েছে।
পূর্বশর্ত
পাইথন
- পাইথন 3.6 বা তার বেশি
- পাইপ প্যাকেজ ম্যানেজমেন্ট টুল
পাইথনের জন্য সর্বশেষ Google ক্লায়েন্ট লাইব্রেরি। এগুলি ইনস্টল বা আপডেট করতে, আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Google Chat API সক্ষম এবং কনফিগার করা একটি Google ক্লাউড প্রকল্প। ধাপগুলির জন্য, একটি Google Chat অ্যাপ তৈরি করুন দেখুন।
চ্যাট অ্যাপের জন্য অনুমোদন কনফিগার করা হয়েছে। মিডিয়া ডাউনলোড করা উভয়ই সমর্থন করে:
-
chat.messages.readonly
বাchat.messages
অনুমোদনের সুযোগের সাথে ব্যবহারকারীর প্রমাণীকরণ । -
chat.bot
অনুমোদনের সুযোগ সহ অ্যাপ প্রমাণীকরণ ।
-
একটি ফাইল সংযুক্তি থেকে ডাউনলোড করুন
একটি ফাইল সংযুক্তি থেকে মিডিয়া ডাউনলোড করতে, আপনার অনুরোধে নিম্নলিখিতটি পাস করুন:
- ব্যবহারকারীর প্রমাণীকরণের সাথে,
chat.messages.readonly
বাchat.messages
অনুমোদনের সুযোগ নির্দিষ্ট করুন। অ্যাপ প্রমাণীকরণের সাথে,chat.bot
অনুমোদনের সুযোগ নির্দিষ্ট করুন। - নিম্নলিখিত Google চ্যাট পদ্ধতিতে কল করুন:
- নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটিতে কল করে
attachmentDataRef
পান: -
Media
রিসোর্সেdownload
পদ্ধতিতে কল করুন এবং পূর্বে পুনরুদ্ধার করাattachmentDataRef.resourceName
media.download.resourceName
হিসেবে উল্লেখ করুন।
- নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটিতে কল করে
নিম্নলিখিত উদাহরণটি একটি বার্তার সাথে সংযুক্ত একটি ফাইল ডাউনলোড করে:
পাইথন
- আপনার কাজের ডিরেক্টরিতে,
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
দিয়ে প্রতিস্থাপন করুন, যা আপনি নিম্নলিখিত উপায়গুলির মধ্যে একটি পুনরুদ্ধার করতে পারেন:আপনার কাজের ডিরেক্টরিতে, নমুনা তৈরি করুন এবং চালান:
python3 chat_media_and_attachment_download.py
সফল হলে, এই পদ্ধতিটি ফাইলের বিষয়বস্তু বাইট হিসাবে ফেরত দেয়।
ফাইলের বিষয়বস্তু ডাউনলোড করতে, নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি বেছে নিন:
আমরা পাইথনে
MediaIoBaseDownload
ক্লাস ব্যবহার করার পরামর্শ দিই, যেটিতে ফাইলটিকে বিভাগে ডাউনলোড করার এবং সামগ্রীগুলিকে একটি আউটপুট স্ট্রীমে সংরক্ষণ করার পদ্ধতি রয়েছে।যদি আপনাকে ম্যানুয়ালি HTTP অনুরোধ করতে হয়,
download
পদ্ধতিতে কল করুন এবংRange
হেডার সহ একটি বাইট পরিসর ব্যবহার করে ফাইলের যে অংশটি ডাউনলোড করতে চান তা নির্দিষ্ট করুন—উদাহরণস্বরূপ:Range: bytes=500-999
।
সম্পর্কিত বিষয়
- বার্তাটি একটি ড্রাইভ ফাইল হলে, ফাইলটিতে অ্যাক্সেস পেতে ড্রাইভ API ব্যবহার করুন৷
- একটি ফাইল সংযুক্তি হিসাবে মিডিয়া আপলোড করুন
- একটি ফাইল সংযুক্তি হিসাবে মিডিয়া ডাউনলোড করুন
- একটি বার্তা সংযুক্তি সম্পর্কে মেটাডেটা পান