আপনার Google Workspace সংস্থার জন্য Google Chat স্পেস খুঁজুন এবং ম্যানেজ করুন

এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে যে, কীভাবে একজন গুগল ওয়ার্কস্পেস প্রশাসক তার সংস্থা জুড়ে নামযুক্ত স্পেসগুলি পরিচালনা করতে এবং প্রশাসনিক কাজ সম্পাদন করতে গুগল চ্যাট এপিআই-এর একটি Space রিসোর্সের search() পদ্ধতি ব্যবহার করতে পারেন।

একজন গুগল ওয়ার্কস্পেস অ্যাডমিনিস্ট্রেটর হিসেবে, আপনি শুধুমাত্র নেমড স্পেস পরিচালনা করার জন্য চ্যাট এপিআই ব্যবহার করতে পারবেন, যেগুলোকে SPACE SpaceType হিসেবে সংজ্ঞায়িত করা হয়। নেমড স্পেস হলো স্থায়ী জায়গা, যেখানে ব্যবহারকারীরা মেসেজ পাঠান, ফাইল শেয়ার করেন এবং একসাথে কাজ করেন। আপনি ডিরেক্ট মেসেজ (DM) বা গ্রুপ চ্যাট পরিচালনা করার জন্য চ্যাট এপিআই ব্যবহার করতে পারবেন না।

Space রিসোর্স হলো এমন একটি স্থান যেখানে ব্যক্তি এবং চ্যাট অ্যাপগুলো বার্তা পাঠাতে, ফাইল শেয়ার করতে এবং একসাথে কাজ করতে পারে। বিভিন্ন ধরনের স্পেস রয়েছে:

  • ডাইরেক্ট মেসেজ (ডিএম) হলো দুইজন ব্যবহারকারীর মধ্যে অথবা একজন ব্যবহারকারী ও একটি চ্যাট অ্যাপের মধ্যে কথোপকথন।
  • গ্রুপ চ্যাট হলো তিন বা ততোধিক ব্যবহারকারীর মধ্যে চ্যাট অ্যাপে হওয়া কথোপকথন।
  • নেমড স্পেস হলো এমন স্থায়ী স্থান যেখানে মানুষ বার্তা পাঠায়, ফাইল শেয়ার করে এবং সম্মিলিতভাবে কাজ করে।

একজন গুগল ওয়ার্কস্পেস প্রশাসক হিসেবে, আপনি চ্যাট এপিআই ব্যবহার করে নিম্নলিখিত উপায়ে আপনার প্রতিষ্ঠানের নামযুক্ত স্পেসগুলি অনুসন্ধান ও পরিচালনা করতে পারেন:

  • প্রতিষ্ঠানের স্পেসগুলো নিরীক্ষা করুন। search() মেথড ব্যবহার করে, আপনি একটি প্রতিষ্ঠানের সমস্ত স্পেসের একটি তালিকা পেতে পারেন, যেখানে প্রতিটি স্পেসের সেটিংস এবং মেটাডেটা সম্পর্কিত বিস্তারিত তথ্য থাকে, যেমন—তৈরির তারিখ, শেষ কার্যকলাপের তারিখ, সদস্য সংখ্যা, হিস্ট্রি সেটিং-এর অবস্থা এবং বাইরের অতিথি আমন্ত্রণ জানানোর ক্ষমতা।
  • নিষ্ক্রিয় স্পেস খুঁজুন এবং মুছে ফেলুন। search() মেথড ব্যবহার করে, আপনি একটি নির্দিষ্ট তারিখ ও সময় থেকে অব্যবহৃত স্পেস খুঁজে বের করতে এবং তারপর সেগুলো মুছে ফেলতে পারেন। আরও বিস্তারিত তথ্য এবং নমুনা কোডের জন্য, “নিষ্ক্রিয় স্পেস খুঁজুন এবং মুছে ফেলুন” দেখুন।
  • অনুসন্ধানের শর্তানুযায়ী খালি জায়গার একটি তালিকা এক্সপোর্ট করুন। search() মেথড ব্যবহার করে, আপনি query নির্দিষ্ট শর্ত পূরণকারী খালি জায়গাগুলোর একটি তালিকা পেতে পারেন এবং বিশ্লেষণের জন্য ফলাফলগুলো একটি CSV ফাইলে এক্সপোর্ট করতে পারেন।
  • স্পেস ম্যানেজারদের খুঁজুন এবং তাদের সাথে যোগাযোগ করুন। search() মেথড ব্যবহার করে আপনি একটি অর্গানাইজেশনের সমস্ত স্পেসের একটি তালিকা পেতে পারেন, তারপর members.list() মেথড ব্যবহার করে সেই সমস্ত স্পেস মেম্বারদের একটি তালিকা পেতে পারেন যারা ম্যানেজার।
  • নির্ধারিত ম্যানেজার ছাড়া স্পেসগুলো খুঁজুন। search() মেথড ব্যবহার করে আপনি একটি অর্গানাইজেশনের সমস্ত স্পেসের একটি তালিকা পেতে পারেন, তারপর members.list() মেথড ব্যবহার করে সেইসব স্পেসের তালিকা পেতে পারেন যেগুলোতে কোনো ম্যানেজার নেই।

পূর্বশর্ত

পাইথন

প্রশাসক হিসেবে গুগল চ্যাট এপিআই-কে কল করুন

প্রশাসক অধিকারসহ ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, আপনাকে আপনার অনুরোধে নিম্নলিখিত বিষয়গুলো অবশ্যই প্রদান করতে হবে:

  • এমন একটি অনুমোদন পরিধি নির্দিষ্ট করুন যা প্রশাসক বিশেষাধিকার সহ ব্যবহারকারী প্রমাণীকরণ ব্যবহার সমর্থন করে।
  • useAdminAccess ফিল্ডটির মান true সেট করুন।

এই বিভাগে একজন প্রশাসক হিসেবে চ্যাট এপিআই কল করার নিম্নলিখিত উদাহরণগুলি দেখানো হয়েছে:

আপনার সংস্থা জুড়ে খালি জায়গা খুঁজুন

এই উদাহরণটি ব্যাখ্যা করে যে, কীভাবে গুগল ওয়ার্কস্পেস অ্যাডমিনিস্ট্রেটররা চ্যাট এপিআই-এর 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' শব্দ দুটি যেকোনো সংমিশ্রণে রয়েছে:

পাইথন

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে search_spaces_for_hello_world.py নামে একটি ফাইল তৈরি করুন।
  2. 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)
    
  3. আপনার ওয়ার্কিং ডিরেক্টরিতে, স্যাম্পলটি বিল্ড ও রান করুন:

    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 নির্দিষ্ট করুন।

নিম্নলিখিত কোডটিতে অ্যাডমিনিস্ট্রেটর অধিকার ব্যবহার করে নিষ্ক্রিয় স্পেসগুলি অনুসন্ধান এবং মুছে ফেলার একটি উদাহরণ দেখানো হয়েছে:

পাইথন

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে find_and_delete_inactive_spaces.py নামে একটি ফাইল তৈরি করুন।

  2. 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()
    
  3. কোডে, INACTIVE_DATE জায়গায় YYYY-MM-DDTHH:MM:SS+HH:MM ফরম্যাটে একটি তারিখ ও সময় বসান। উদাহরণস্বরূপ, "2024-06-01T00:00:00+00:00"।

  4. আপনার ওয়ার্কিং ডিরেক্টরিতে, স্যাম্পলটি বিল্ড ও রান করুন:

    python3 find_and_delete_inactive_spaces.py