এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে কীভাবে গুগল চ্যাট এপিআই-এর SpaceEvent রিসোর্সের list() মেথড ব্যবহার করে একটি স্পেসের অন্তর্গত রিসোর্সগুলোর পরিবর্তন তালিকাভুক্ত করা যায়।
SpaceEvent রিসোর্সটি টার্গেট স্পেসের একটি পরিবর্তনকে নির্দেশ করে, যার মধ্যে স্পেসটির চাইল্ড রিসোর্স যেমন মেসেজ, রিঅ্যাকশন এবং মেম্বারশিপ অন্তর্ভুক্ত থাকে। সমর্থিত ইভেন্ট টাইপ এবং ইভেন্ট পেলোডের তালিকা সম্পর্কে আরও তথ্যের জন্য, SpaceEvent রিসোর্স রেফারেন্স ডকুমেন্টেশনের eventType এবং payload ফিল্ডগুলো দেখুন।
আপনি অনুরোধের সময়ের ২৮ দিন আগের ইভেন্টগুলো তালিকাভুক্ত করতে পারেন। সার্ভার সেই ইভেন্টগুলো ফেরত দেয় যেগুলোতে সংশ্লিষ্ট রিসোর্সের সবচেয়ে সাম্প্রতিক সংস্করণটি থাকে। উদাহরণস্বরূপ, আপনি যদি নতুন স্পেস সদস্যদের সম্পর্কে ইভেন্ট তালিকাভুক্ত করেন, তাহলে সার্ভার Membership রিসোর্স ফেরত দেবে যেগুলোতে সদস্যপদের সর্বশেষ বিবরণ রয়েছে। অনুরোধ করা সময়ের মধ্যে যদি নতুন সদস্যদের সরিয়ে দেওয়া হয়, তাহলে ইভেন্ট পেলোডে একটি খালি Membership রিসোর্স থাকবে।
কোনো স্পেস থেকে ইভেন্টের তালিকা দেখতে হলে, প্রমাণীকৃত ব্যবহারকারী বা চ্যাট অ্যাপটিকে অবশ্যই সেই স্পেসের সদস্য হতে হবে।
পূর্বশর্ত
নোড.জেএস
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- Node.js ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- আপনার গুগল চ্যাট এপিআই অনুরোধে আপনি যেভাবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অ্যাক্সেস ক্রেডেনশিয়াল তৈরি করুন:
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন। - চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
- আপনি ব্যবহারকারী হিসেবে নাকি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অনুমোদনের পরিধি বেছে নিন ।
পাইথন
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- পাইথন ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- আপনার গুগল চ্যাট এপিআই অনুরোধে আপনি যেভাবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অ্যাক্সেস ক্রেডেনশিয়াল তৈরি করুন:
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন। - চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
- আপনি ব্যবহারকারী হিসেবে নাকি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অনুমোদনের পরিধি বেছে নিন ।
স্পেস ইভেন্টগুলির তালিকা (ব্যবহারকারীর প্রমাণীকরণ)
একটি চ্যাট স্পেস থেকে স্পেস ইভেন্টগুলির তালিকা পেতে, আপনার অনুরোধে নিম্নলিখিতগুলি উল্লেখ করুন:
আপনার অনুরোধের প্রতিটি ইভেন্ট টাইপ সমর্থন করার জন্য এক বা একাধিক অথরাইজেশন স্কোপ নির্দিষ্ট করুন। সর্বোত্তম অনুশীলন হিসেবে, এমন সবচেয়ে সীমাবদ্ধ স্কোপটি বেছে নিন যা আপনার অ্যাপকে সচল রাখতে পারে। স্কোপ বেছে নিতে, ‘অথেন্টিকেশন এবং অথরাইজেশন ওভারভিউ’ দেখুন।
ইভেন্টের প্রকারভেদের
filterতালিকায় পাস করেListSpaceEvents()মেথডটি কল করুন। আপনাকে অবশ্যই অন্তত একটি ইভেন্টের প্রকারভেদ উল্লেখ করতে হবে এবং আপনি তারিখ অনুযায়ীও ফিল্টার করতে পারেন। সমর্থিত ইভেন্টের প্রকারভেদের তালিকার জন্য,SpaceEventরিসোর্স রেফারেন্স ডকুমেন্টেশনেরeventTypeফিল্ডটি দেখুন।
নিম্নলিখিত উদাহরণটি একটি স্পেসের নতুন সদস্যপদ এবং বার্তা সম্পর্কিত ইভেন্টগুলি তালিকাভুক্ত করে:
নোড.জেএস
এই নমুনাটি চালানোর জন্য, SPACE_NAME জায়গায় স্পেসটির name থেকে পাওয়া ID-টি বসান। আপনি ListSpaces() মেথডটি কল করে অথবা স্পেসটির URL থেকে ID-টি পেতে পারেন।
চ্যাট এপিআই নতুন সদস্যপদ এবং বার্তা সম্পর্কিত স্পেস ইভেন্টগুলোর একটি পেজিনেটেড তালিকা ফেরত দেয়।
স্পেস ইভেন্টগুলির তালিকা (চ্যাট অ্যাপ প্রমাণীকরণ)
অ্যাপ প্রমাণীকরণের জন্য প্রশাসকের এককালীন অনুমোদন প্রয়োজন।
অ্যাপ অথেন্টিকেশন এবং চ্যাট REST API ব্যবহার করে কোনো স্পেসের ইভেন্টগুলো তালিকাভুক্ত করতে, আপনার অনুরোধে নিম্নলিখিত তথ্যগুলো দিন:
- আপনার অনুরোধের প্রতিটি ইভেন্ট টাইপ সমর্থন করার জন্য এক বা একাধিক অথরাইজেশন স্কোপ নির্দিষ্ট করুন। সর্বোত্তম অনুশীলন হিসেবে, এমন সবচেয়ে সীমাবদ্ধ স্কোপটি বেছে নিন যা আপনার অ্যাপকে সচল রাখতে পারে। স্কোপ নির্বাচন সম্পর্কে আরও জানতে, ‘অথেন্টিকেশন এবং অথরাইজেশন ওভারভিউ’ দেখুন।
-
https://www.googleapis.com/auth/chat.app.memberships -
https://www.googleapis.com/auth/chat.app.memberships.readonly -
https://www.googleapis.com/auth/chat.app.messages.readonly -
https://www.googleapis.com/auth/chat.app.spaces -
https://www.googleapis.com/auth/chat.app.spaces.readonly
-
-
spaceEventsরিসোর্সেরlistমেথডটি কল করুন। - যে স্পেস থেকে মেসেজ তালিকাভুক্ত করতে চান, তার
nameদিন। - নির্দিষ্ট ইভেন্টের ধরণগুলো জানতে একটি
filterপ্রয়োগ করুন।
একটি স্ক্রিপ্ট লিখুন যা চ্যাট এপিআই কল করে
অ্যাপ অথেন্টিকেশন এবং চ্যাট REST API ব্যবহার করে স্পেস ইভেন্টগুলো তালিকাভুক্ত করার পদ্ধতি নিচে দেওয়া হলো:
পাইথন
- আপনার ওয়ার্কিং ডিরেক্টরিতে
chat_spaceevents_list_app.pyনামে একটি ফাইল তৈরি করুন। chat_spaceevents_list_app.pyফাইলে নিম্নলিখিত কোডটি অন্তর্ভুক্ত করুন:from google.oauth2 import service_account from apiclient.discovery import build # Define your app's authorization scopes. # Set authorization scopes based on the # event type. For example, if you are getting a space event # about a new membership, use the `chat.app.memberships` scope. # # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships", "https://www.googleapis.com/auth/chat.app.memberships.readonly", "https://www.googleapis.com/auth/chat.app.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces", "https://www.googleapis.com/auth/chat.app.spaces.readonly"] def main(): ''' Authenticates with Chat API using app authentication, then lists space events from a specified space. ''' # Specify service account details. creds = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.spaces().spaceEvents().list( # The space to list events from. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE_NAME', # A required filter. Filters events by event type. # # Update this filter to match your requirements. filter='eventTypes:"google.workspace.chat.message.v1.created"' ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()কোডে নিম্নলিখিতটি প্রতিস্থাপন করুন:
-
SPACE_NAME: একটি স্পেসের নাম, যা আপনি চ্যাট এপিআই-এরspaces.listমেথড থেকে অথবা কোনো স্পেসের ইউআরএল থেকে পেতে পারেন।
-
আপনার ওয়ার্কিং ডিরেক্টরিতে, স্যাম্পলটি বিল্ড ও রান করুন:
python3 chat_spaceevents_list_app.py
চ্যাট এপিআই নতুন সদস্যপদ এবং বার্তা সম্পর্কিত স্পেস ইভেন্টগুলোর একটি পেজিনেটেড তালিকা ফেরত দেয়।