এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে যে, কীভাবে একজন গুগল ওয়ার্কস্পেস প্রশাসক তার সংস্থা জুড়ে নামযুক্ত স্পেসগুলি পরিচালনা করতে এবং প্রশাসনিক কাজ সম্পাদন করতে গুগল চ্যাট এপিআই-এর একটি Space রিসোর্সের search() পদ্ধতি ব্যবহার করতে পারেন।
একজন গুগল ওয়ার্কস্পেস অ্যাডমিনিস্ট্রেটর হিসেবে, আপনি শুধুমাত্র নেমড স্পেস পরিচালনা করার জন্য চ্যাট এপিআই ব্যবহার করতে পারবেন, যেগুলোকে SPACE SpaceType হিসেবে সংজ্ঞায়িত করা হয়। নেমড স্পেস হলো স্থায়ী জায়গা, যেখানে ব্যবহারকারীরা মেসেজ পাঠান, ফাইল শেয়ার করেন এবং একসাথে কাজ করেন। আপনি ডিরেক্ট মেসেজ (DM) বা গ্রুপ চ্যাট পরিচালনা করার জন্য চ্যাট এপিআই ব্যবহার করতে পারবেন না।
Space রিসোর্স হলো এমন একটি স্থান যেখানে ব্যক্তি এবং চ্যাট অ্যাপগুলো বার্তা পাঠাতে, ফাইল শেয়ার করতে এবং একসাথে কাজ করতে পারে। বিভিন্ন ধরনের স্পেস রয়েছে:
- ডাইরেক্ট মেসেজ (ডিএম) হলো দুইজন ব্যবহারকারীর মধ্যে অথবা একজন ব্যবহারকারী ও একটি চ্যাট অ্যাপের মধ্যে কথোপকথন।
- গ্রুপ চ্যাট হলো তিন বা ততোধিক ব্যবহারকারীর মধ্যে চ্যাট অ্যাপে হওয়া কথোপকথন।
- নেমড স্পেস হলো এমন স্থায়ী স্থান যেখানে মানুষ বার্তা পাঠায়, ফাইল শেয়ার করে এবং সম্মিলিতভাবে কাজ করে।
একজন গুগল ওয়ার্কস্পেস প্রশাসক হিসেবে, আপনি চ্যাট এপিআই ব্যবহার করে নিম্নলিখিত উপায়ে আপনার প্রতিষ্ঠানের নামযুক্ত স্পেসগুলি অনুসন্ধান ও পরিচালনা করতে পারেন:
- প্রতিষ্ঠানের স্পেসগুলো নিরীক্ষা করুন।
search()মেথড ব্যবহার করে, আপনি একটি প্রতিষ্ঠানের সমস্ত স্পেসের একটি তালিকা পেতে পারেন, যেখানে প্রতিটি স্পেসের সেটিংস এবং মেটাডেটা সম্পর্কিত বিস্তারিত তথ্য থাকে, যেমন—তৈরির তারিখ, শেষ কার্যকলাপের তারিখ, সদস্য সংখ্যা, হিস্ট্রি সেটিং-এর অবস্থা এবং বাইরের অতিথি আমন্ত্রণ জানানোর ক্ষমতা। - নিষ্ক্রিয় স্পেস খুঁজুন এবং মুছে ফেলুন।
search()মেথড ব্যবহার করে, আপনি একটি নির্দিষ্ট তারিখ ও সময় থেকে অব্যবহৃত স্পেস খুঁজে বের করতে এবং তারপর সেগুলো মুছে ফেলতে পারেন। আরও বিস্তারিত তথ্য এবং নমুনা কোডের জন্য, “নিষ্ক্রিয় স্পেস খুঁজুন এবং মুছে ফেলুন” দেখুন। - অনুসন্ধানের শর্তানুযায়ী খালি জায়গার একটি তালিকা এক্সপোর্ট করুন।
search()মেথড ব্যবহার করে, আপনিqueryনির্দিষ্ট শর্ত পূরণকারী খালি জায়গাগুলোর একটি তালিকা পেতে পারেন এবং বিশ্লেষণের জন্য ফলাফলগুলো একটি CSV ফাইলে এক্সপোর্ট করতে পারেন। - স্পেস ম্যানেজারদের খুঁজুন এবং তাদের সাথে যোগাযোগ করুন।
search()মেথড ব্যবহার করে আপনি একটি অর্গানাইজেশনের সমস্ত স্পেসের একটি তালিকা পেতে পারেন, তারপরmembers.list()মেথড ব্যবহার করে সেই সমস্ত স্পেস মেম্বারদের একটি তালিকা পেতে পারেন যারা ম্যানেজার। - নির্ধারিত ম্যানেজার ছাড়া স্পেসগুলো খুঁজুন।
search()মেথড ব্যবহার করে আপনি একটি অর্গানাইজেশনের সমস্ত স্পেসের একটি তালিকা পেতে পারেন, তারপরmembers.list()মেথড ব্যবহার করে সেইসব স্পেসের তালিকা পেতে পারেন যেগুলোতে কোনো ম্যানেজার নেই।
পূর্বশর্ত
পাইথন
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- পাইথন গুগল এপিআই ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন । এই গাইডের নমুনাটি চালানোর জন্য, ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- এমন একটি অনুমোদন পরিধি বেছে নিন যা ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
- আপনার গুগল ওয়ার্কস্পেস অর্গানাইজেশনের জন্য চ্যাট এবং স্পেস কথোপকথন পরিচালনা করার অ্যাডমিনিস্ট্রেটর অধিকার থাকতে হবে।
প্রশাসক হিসেবে গুগল চ্যাট এপিআই-কে কল করুন
প্রশাসক অধিকারসহ ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, আপনাকে আপনার অনুরোধে নিম্নলিখিত বিষয়গুলো অবশ্যই প্রদান করতে হবে:
- এমন একটি অনুমোদন পরিধি নির্দিষ্ট করুন যা প্রশাসক বিশেষাধিকার সহ ব্যবহারকারী প্রমাণীকরণ ব্যবহার সমর্থন করে।
-
useAdminAccessফিল্ডটির মানtrueসেট করুন।
এই বিভাগে একজন প্রশাসক হিসেবে চ্যাট এপিআই কল করার নিম্নলিখিত উদাহরণগুলি দেখানো হয়েছে:
-
search()মেথডটি কল করে স্পেস খুঁজুন । - আপনার অর্গানাইজেশনের নিষ্ক্রিয় স্পেসগুলো খুঁজে বের করতে ও মুছে ফেলতে, প্রথমে
search()মেথড কল করে নিষ্ক্রিয় স্পেসগুলোর একটি তালিকা নিন এবং তারপরdelete()মেথড কল করে সেগুলোকে মুছে ফেলুন।
আপনার সংস্থা জুড়ে খালি জায়গা খুঁজুন
এই উদাহরণটি ব্যাখ্যা করে যে, কীভাবে গুগল ওয়ার্কস্পেস অ্যাডমিনিস্ট্রেটররা চ্যাট এপিআই-এর Space রিসোর্সের search() মেথড ব্যবহার করে নির্দিষ্ট মানদণ্ডের ভিত্তিতে একটি অর্গানাইজেশন জুড়ে স্পেস অনুসন্ধান করতে পারেন।
ব্যবহারকারী প্রমাণীকরণ এবং প্রশাসক অধিকার সহ search() মেথডটি কল করতে হলে, আপনাকে অনুরোধে নিম্নলিখিত বিষয়গুলো উল্লেখ করতে হবে:
-
chat.admin.spacesঅথবাchat.admin.spaces.readonlyঅনুমোদন পরিধি নির্দিষ্ট করুন। -
useAdminAccess=trueনির্দিষ্ট করুন। - ফলাফল ফিল্টার করতে সার্চ
queryপ্যারামিটারগুলো নির্দিষ্ট করুন:-
customer = "customers/my_customer"- এটি আবশ্যক এবং একমাত্র সমর্থিত মান হলোcustomers/my_customer -
spaceType = "SPACE"- এটি আবশ্যক এবং একমাত্র সমর্থিত মান হলোSPACE - ঐচ্ছিকভাবে, আপনার স্পেস অনুসন্ধানকে আরও ফিল্টার করার জন্য এক বা একাধিক অতিরিক্ত কোয়েরি ব্যবহার করা যেতে পারে, যেমন ডিসপ্লে নামের মধ্যে থাকা কীওয়ার্ড (
displayName), তৈরির তারিখ (createTime), অথবা স্পেসের কার্যকলাপের উপর ভিত্তি করে (lastActiveTime)।
-
নিম্নলিখিত কোডটিতে দেখানো হয়েছে কিভাবে অ্যাডমিনিস্ট্রেটর প্রিভিলেজ ব্যবহার করে এমন স্পেস অনুসন্ধান করা যায়, যার ডিসপ্লে নামে 'Hello' এবং 'World' শব্দ দুটি যেকোনো সংমিশ্রণে রয়েছে:
পাইথন
- আপনার ওয়ার্কিং ডিরেক্টরিতে
search_spaces_for_hello_world.pyনামে একটি ফাইল তৈরি করুন। search_spaces_for_hello_world.pyফাইলে নিম্নলিখিত কোডটি অন্তর্ভুক্ত করুন:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build SCOPES = [ 'https://www.googleapis.com/auth/chat.admin.spaces.readonly', ] def main(): # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES, ) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) spaces = [] page_token = '' # Search for all spaces. while True: result = ( chat.spaces() .search( useAdminAccess=True, query=( 'customer = "customers/my_customer"' 'AND spaceType = "SPACE"' 'AND displayName:"Hello World"' ) pageToken=page_token, ) .execute() ) if 'spaces' not in result: print('No spaces found named Hello World.') return spaces.extend(result['spaces']) if 'nextPageToken' in result: page_token = result['nextPageToken'] else: break print(str(len(spaces)) + ' spaces found:') # Prints the list of spaces. print(spaces)আপনার ওয়ার্কিং ডিরেক্টরিতে, স্যাম্পলটি বিল্ড ও রান করুন:
python3 search_spaces_for_hello_world.py
নিষ্ক্রিয় স্থানগুলি খুঁজুন এবং মুছে ফেলুন
এই উদাহরণটি ব্যাখ্যা করে যে কীভাবে গুগল ওয়ার্কস্পেস অ্যাডমিনিস্ট্রেটররা চ্যাট এপিআই-এর Space রিসোর্সের search() মেথড ব্যবহার করে নিষ্ক্রিয় স্পেসগুলি খুঁজে বের করতে পারেন এবং তারপরে useAdminAccess প্যারামিটার সহ delete() মেথড ব্যবহার করে সেগুলি মুছে ফেলতে পারেন।
নিষ্ক্রিয় গুগল চ্যাট স্পেস—যেগুলো আর সক্রিয়ভাবে ব্যবহৃত হচ্ছে না—সেগুলো মূল্যবান স্টোরেজ স্পেস দখল করতে পারে এবং ইউজার ইন্টারফেসে জঞ্জাল তৈরি করতে পারে। search() মেথড ব্যবহার করে, অ্যাডমিনিস্ট্রেটররা এমন স্পেস খুঁজে বের করতে পারেন যেগুলো একটি নির্দিষ্ট তারিখ ও সময়, যেমন দুই মাস আগে থেকে, ব্যবহৃত হয়নি। স্পেসগুলোর তালিকা তৈরি হয়ে গেলে, অ্যাডমিনিস্ট্রেটররা সেগুলোর উপর ব্যবস্থা নিতে পারেন, যেমন সেগুলোকে আপডেট করা বা মুছে ফেলা।
ব্যবহারকারীর প্রমাণীকরণ এবং প্রশাসকের বিশেষাধিকার ব্যবহার করে নিষ্ক্রিয় স্পেসের তালিকা অনুসন্ধান করতে এবং তারপর সেগুলি মুছে ফেলতে, আপনার অনুরোধে নিম্নলিখিতগুলি পাস করুন:
- নিষ্ক্রিয় স্থানগুলি অনুসন্ধান করতে, নিম্নলিখিতগুলি উল্লেখ করুন:
-
chat.admin.spacesঅথবাchat.admin.spaces.readonlyঅনুমোদন পরিধি নির্দিষ্ট করুন। -
Spacesরিসোর্সের উপরsearch()মেথডটি কল করুন। -
INACTIVE_SPACE_DEADLINEসেই সর্বশেষ কার্যকলাপের তারিখ এবং সময়ে সেট করুন যা ফেরতযোগ্য স্থানগুলি নির্ধারণ করে। -
useAdminAccess=trueনির্দিষ্ট করুন। - ফলাফল ফিল্টার করতে সার্চ
queryপ্যারামিটারগুলো নির্দিষ্ট করুন:-
customer = "customers/my_customer"- এটি আবশ্যক এবং একমাত্র সমর্থিত মান হলোcustomers/my_customer -
spaceType = "SPACE"- এটি আবশ্যক এবং একমাত্র সমর্থিত মান হলোSPACE -
lastActiveTime- শুধুমাত্র নিষ্ক্রিয় স্পেসগুলো ফেরত পাওয়ার জন্য আপনার অনুরোধ ফিল্টার করতে,lastActiveTimeউল্লেখ করুন।
-
-
- অনুসন্ধানের ফলাফল থেকে নিষ্ক্রিয় স্থানগুলো মুছে ফেলার জন্য, নিম্নলিখিত বিষয়গুলো উল্লেখ করুন:
-
chat.admin.deleteএর অনুমোদন পরিধি নির্দিষ্ট করুন। -
Spacesরিসোর্সের উপরdelete()মেথডটি কল করুন। -
useAdminAccess=trueনির্দিষ্ট করুন।
-
নিম্নলিখিত কোডটিতে অ্যাডমিনিস্ট্রেটর অধিকার ব্যবহার করে নিষ্ক্রিয় স্পেসগুলি অনুসন্ধান এবং মুছে ফেলার একটি উদাহরণ দেখানো হয়েছে:
পাইথন
আপনার ওয়ার্কিং ডিরেক্টরিতে
find_and_delete_inactive_spaces.pyনামে একটি ফাইল তৈরি করুন।find_and_delete_inactive_spaces.pyফাইলে নিম্নলিখিত কোডটি অন্তর্ভুক্ত করুন:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build SCOPES = [ 'https://www.googleapis.com/auth/chat.admin.spaces.readonly', 'https://www.googleapis.com/auth/chat.admin.delete', ] # Any spaces that have not been active since this time will be deleted. INACTIVE_SPACE_DEADLINE = '"INACTIVE_DATE"' def main(): # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES, ) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) spaces = [] page_token = '' # Search for all inactive spaces. while True: result = ( chat.spaces() .search( useAdminAccess=True, query=( 'customer = "customers/my_customer" AND spaceType = "SPACE" AND' ' lastActiveTime < ' ) + INACTIVE_SPACE_DEADLINE, pageToken=page_token, ) .execute() ) if 'spaces' not in result: print('No inactive spaces found.') return spaces.extend(result['spaces']) if 'nextPageToken' in result: page_token = result['nextPageToken'] else: break print(str(len(spaces)) + ' inactive spaces found:') # Prints the list of inactive spaces. print(spaces) # Delete all inactive spaces. for space in spaces: ( chat.spaces() .delete( useAdminAccess=True, name=space['name'], ) .execute() ) print( 'Deleted space: ' + space['displayName'] + ', Resource Name: ' + space['name'] ) if __name__ == '__main__': main()কোডে,
INACTIVE_DATEজায়গায় YYYY-MM-DDTHH:MM:SS+HH:MM ফরম্যাটে একটি তারিখ ও সময় বসান। উদাহরণস্বরূপ, "2024-06-01T00:00:00+00:00"।আপনার ওয়ার্কিং ডিরেক্টরিতে, স্যাম্পলটি বিল্ড ও রান করুন:
python3 find_and_delete_inactive_spaces.py
সম্পর্কিত বিষয়
- স্পেসগুলো মুছে ফেলুন
- একটি স্থানে সদস্যদের তালিকা করুন
- গুগল ওয়ার্কস্পেস প্রশাসক হিসেবে চ্যাট স্পেসগুলি পরিচালনা করুন
-
spaces.search()পদ্ধতি