এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে কীভাবে গুগল চ্যাট এপিআই-এর SpaceEvent রিসোর্সের get() মেথড ব্যবহার করে একটি গুগল চ্যাট স্পেসের কোনো ইভেন্টের বিবরণ পাওয়া যায়।
SpaceEvent রিসোর্সটি কোনো স্পেস বা তার চাইল্ড রিসোর্স, যেমন মেসেজ, রিঅ্যাকশন এবং মেম্বারশিপ-এর পরিবর্তনকে নির্দেশ করে। সমর্থিত ইভেন্টের ধরনগুলো সম্পর্কে জানতে, SpaceEvent রিসোর্স রেফারেন্স ডকুমেন্টেশনের eventType ফিল্ডটি দেখুন।
আপনি অনুরোধ করার সময়ের ২৮ দিন পূর্ব পর্যন্ত ইভেন্টের জন্য অনুরোধ করতে পারেন। ইভেন্টটিতে পরিবর্তিত রিসোর্সটির সর্বশেষ সংস্করণ থাকে। উদাহরণস্বরূপ, আপনি যদি একটি নতুন বার্তা সম্পর্কে ইভেন্টের জন্য অনুরোধ করেন কিন্তু বার্তাটি পরে আপডেট করা হয়, তাহলে সার্ভার ইভেন্ট পেলোডে আপডেট করা Message রিসোর্সটি ফেরত দেয়।
এই মেথডটি কল করতে হলে, আপনাকে অবশ্যই ইউজার অথেন্টিকেশন ব্যবহার করতে হবে। কোনো ইভেন্ট পেতে হলে, অথেন্টিকেটেড ইউজারকে অবশ্যই সেই স্পেসের সদস্য হতে হবে যেখানে ইভেন্টটি ঘটেছে।
পূর্বশর্ত
নোড.জেএস
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- Node.js ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- আপনার গুগল চ্যাট এপিআই অনুরোধে আপনি যেভাবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অ্যাক্সেস ক্রেডেনশিয়াল তৈরি করুন:
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন। - চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
- আপনি ব্যবহারকারী হিসেবে নাকি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অনুমোদনের পরিধি বেছে নিন ।
পাইথন
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- পাইথন ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- আপনার গুগল চ্যাট এপিআই অনুরোধে আপনি যেভাবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অ্যাক্সেস ক্রেডেনশিয়াল তৈরি করুন:
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন। - চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
- আপনি ব্যবহারকারী হিসেবে নাকি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অনুমোদনের পরিধি বেছে নিন ।
একটি মহাকাশ ইভেন্টের বিবরণ জানুন (ব্যবহারকারী প্রমাণীকরণ)
গুগল চ্যাটে কোনো মহাকাশ ইভেন্টের বিবরণ পেতে, আপনার অনুরোধে নিম্নলিখিত তথ্যগুলো দিন:
- আপনার অনুরোধে ইভেন্ট টাইপ সমর্থন করে এমন একটি অনুমোদন পরিধি নির্দিষ্ট করুন। সর্বোত্তম অনুশীলন হিসেবে, এমন সবচেয়ে সীমাবদ্ধ পরিধিটি বেছে নিন যা আপনার অ্যাপকে কাজ করতে দেয়।
- যে স্পেস ইভেন্টটি পেতে চান, তার
nameপাস করেGetSpaceEvent()মেথডটি কল করুন।
নিম্নলিখিত উদাহরণটি একটি স্পেস ইভেন্ট পায়:
নোড.জেএস
এই Node.js কোড নমুনাটি Chat RPC API ব্যবহার করে।
এই নমুনাটি চালানোর জন্য, নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
-
SCOPE_NAME: ইভেন্টের ধরনের উপর ভিত্তি করে একটি অথরাইজেশন স্কোপ। উদাহরণস্বরূপ, আপনি যদি নতুন সদস্যপদ সংক্রান্ত কোনো স্পেস ইভেন্ট পান, তাহলেchat.memberships.readonlyস্কোপটি ব্যবহার করুন, যাhttps://www.googleapis.com/auth/chat.memberships.readonlyফরম্যাটে থাকে। আপনিListSpaceEvents()মেথড থেকে ইভেন্টের ধরনটি পেতে পারেন। এই মেথডটি কীভাবে ব্যবহার করতে হয় তা জানতে, "List events from a space" দেখুন। -
SPACE_NAME: স্পেসটিরnameথেকে প্রাপ্ত আইডি। আপনিListSpaces()মেথড কল করে অথবা স্পেসটির URL থেকে আইডিটি পেতে পারেন। -
SPACE_EVENT_NAME: স্পেস ইভেন্টেরnameথেকে প্রাপ্ত আইডি। আপনিListSpaceEvents()মেথড থেকে আইডিটি পেতে পারেন। এই মেথডটি কীভাবে ব্যবহার করতে হয় তা জানতে, "একটি স্পেস থেকে ইভেন্ট তালিকাভুক্ত করুন" দেখুন।
চ্যাট এপিআই ইভেন্টটির বিবরণসহ SpaceEvent এর একটি ইনস্ট্যান্স ফেরত দেয়।
একটি স্পেস ইভেন্ট সম্পর্কে বিস্তারিত জানুন (চ্যাট অ্যাপ প্রমাণীকরণ)
অ্যাপ প্রমাণীকরণের জন্য প্রশাসকের এককালীন অনুমোদন প্রয়োজন।
অ্যাপ অথেন্টিকেশন সহ কোনো স্পেস থেকে চ্যাট 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রিসোর্সেরgetমেথডটি কল করুন। - অনুষ্ঠানের বিবরণ পেতে স্থানটির
nameদিন।
একটি স্ক্রিপ্ট লিখুন যা চ্যাট এপিআই কল করে
অ্যাপ অথেন্টিকেশন এবং চ্যাট REST API ব্যবহার করে একটি স্পেস ইভেন্টের বিস্তারিত তথ্য পাওয়ার উপায় নিচে দেওয়া হলো:
পাইথন
এই পাইথন কোড নমুনাটিতে চ্যাট রেস্ট এপিআই (Chat REST API) ব্যবহার করা হয়েছে।
- আপনার ওয়ার্কিং ডিরেক্টরিতে
chat_spaceevents_get_app.pyনামে একটি ফাইল তৈরি করুন। chat_spaceevents_get_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().get( # The space to get event details 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. name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME', ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()কোডে নিম্নলিখিতটি প্রতিস্থাপন করুন:
-
SPACE_NAME: একটি স্পেসের নাম, যা আপনি চ্যাট এপিআই-এরspaces.listমেথড থেকে অথবা কোনো স্পেসের ইউআরএল থেকে পেতে পারেন। -
SPACE_EVENT_NAME: স্পেস ইভেন্টেরnameথেকে প্রাপ্ত আইডি। আপনিListSpaceEvents()মেথড থেকে আইডিটি পেতে পারেন। এই মেথডটি কীভাবে ব্যবহার করতে হয় তা জানতে, "একটি স্পেস থেকে ইভেন্ট তালিকাভুক্ত করুন" দেখুন।
-
আপনার ওয়ার্কিং ডিরেক্টরিতে, স্যাম্পলটি বিল্ড ও রান করুন:
python3 chat_spaceevents_get_app.py
চ্যাট এপিআই নতুন সদস্যপদ এবং বার্তা সম্পর্কিত স্পেস ইভেন্টগুলোর একটি পেজিনেটেড তালিকা ফেরত দেয়।