Google Chat এ একটি বার্তা থেকে মিডিয়া (একটি ফাইল) ডাউনলোড করতে Google Chat API-এর Media
রিসোর্সে কীভাবে download
পদ্ধতি ব্যবহার করতে হয় তা এই নির্দেশিকাটি ব্যাখ্যা করে।
যখন ব্যবহারকারী আপনার অ্যাপে একটি বার্তা পাঠায়, তখন Google Chat একটি MESSAGE
ইন্টারঅ্যাকশন ইভেন্ট প্রেরণ করে। আপনার অ্যাপের মাধ্যমে প্রাপ্ত ইন্টারঅ্যাকশন ইভেন্টে একটি রিকোয়েস্ট বডি অন্তর্ভুক্ত থাকে, যেটি JSON পেলোড যে কোনো অ্যাটাচমেন্ট সহ ইন্টারঅ্যাকশন ইভেন্টের প্রতিনিধিত্ব করে। সংযুক্তিটি আপলোড করা বিষয়বস্তু (স্থানীয় ফাইল) বা ড্রাইভে সংরক্ষিত ফাইল কিনা তার উপর নির্ভর করে সংযুক্তিতে থাকা ডেটা আলাদা। Media
সংস্থান Google চ্যাটে আপলোড করা একটি ফাইলকে উপস্থাপন করে, যেমন ছবি, ভিডিও এবং নথি। Attachment
সংস্থান মিডিয়ার একটি উদাহরণ উপস্থাপন করে - একটি ফাইল - একটি বার্তার সাথে সংযুক্ত৷ Attachment
সংস্থান সংযুক্তি সম্পর্কে মেটাডেটা অন্তর্ভুক্ত করে, যেমন এটি কোথায় সংরক্ষণ করা হয়েছে।
পূর্বশর্ত
পাইথন
- Google Chat অ্যাক্সেস সহ একটি ব্যবসা বা এন্টারপ্রাইজ Google Workspace অ্যাকাউন্ট।
- আপনার পরিবেশ সেট আপ করুন:
- একটি Google ক্লাউড প্রকল্প তৈরি করুন ।
- OAuth সম্মতি স্ক্রিন কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ সহ Google Chat API সক্রিয় এবং কনফিগার করুন ।
- পাইথন গুগল এপিআই ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- আপনি কীভাবে আপনার Google Chat API অনুরোধে প্রমাণীকরণ করতে চান তার উপর ভিত্তি করে অ্যাক্সেসের শংসাপত্র তৈরি করুন:
- চ্যাট ব্যবহারকারী হিসাবে প্রমাণীকরণ করতে, OAuth ক্লায়েন্ট আইডি শংসাপত্র তৈরি করুন এবং আপনার স্থানীয় ডিরেক্টরিতে
client_secrets.json
নামে একটি JSON ফাইল হিসাবে শংসাপত্রগুলি সংরক্ষণ করুন৷ - চ্যাট অ্যাপ হিসাবে প্রমাণীকরণ করতে, পরিষেবা অ্যাকাউন্টের শংসাপত্র তৈরি করুন এবং শংসাপত্রগুলিকে
credentials.json
নামে একটি JSON ফাইল হিসাবে সংরক্ষণ করুন।
- চ্যাট ব্যবহারকারী হিসাবে প্রমাণীকরণ করতে, OAuth ক্লায়েন্ট আইডি শংসাপত্র তৈরি করুন এবং আপনার স্থানীয় ডিরেক্টরিতে
- আপনি ব্যবহারকারী বা চ্যাট অ্যাপ হিসাবে প্রমাণীকরণ করতে চান কিনা তার উপর ভিত্তি করে একটি অনুমোদনের সুযোগ বেছে নিন ।
একটি ফাইল সংযুক্তি থেকে ডাউনলোড করুন
একটি ফাইল সংযুক্তি থেকে মিডিয়া ডাউনলোড করতে, আপনার অনুরোধে নিম্নলিখিতটি পাস করুন:
- ব্যবহারকারীর প্রমাণীকরণের সাথে,
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 ব্যবহার করুন৷
- একটি ফাইল সংযুক্তি হিসাবে মিডিয়া আপলোড করুন
- একটি ফাইল সংযুক্তি হিসাবে মিডিয়া ডাউনলোড করুন
- একটি বার্তা সংযুক্তি সম্পর্কে মেটাডেটা পান