अपने संगठन के Google Workspace खाते के लिए, Google Chat में मौजूद स्पेस खोजना और उन्हें मैनेज करना

इस गाइड में बताया गया है कि Google Workspace एडमिन, अपने संगठन में नाम वाले स्पेस मैनेज करने और एडमिन से जुड़े टास्क करने के लिए, Google Chat API के Space रिसॉर्स पर search() तरीके का इस्तेमाल कैसे कर सकता है.

Google Workspace एडमिन के तौर पर, सिर्फ़ नाम वाले स्पेस मैनेज करने के लिए Chat API का इस्तेमाल किया जा सकता है. इन स्पेस को SPACE के SpaceType के तौर पर दिखाया जाता है. नाम वाले स्पेस, हमेशा मौजूद रहते हैं. इनमें लोग मैसेज भेजते हैं, फ़ाइलें शेयर करते हैं, और साथ मिलकर काम करते हैं. डायरेक्ट मैसेज (डीएम) या ग्रुप चैट मैनेज करने के लिए, Chat API का इस्तेमाल नहीं किया जा सकता.

Space संसाधन, ऐसी जगह को दिखाता है जहां लोग और Chat ऐप्लिकेशन, मैसेज भेज सकते हैं, फ़ाइलें शेयर कर सकते हैं, और साथ मिलकर काम कर सकते हैं. स्पेस कई तरह के होते हैं:

  • डायरेक्ट मैसेज (DM), दो उपयोगकर्ताओं या किसी उपयोगकर्ता और Chat ऐप्लिकेशन के बीच की बातचीत होती है.
  • ग्रुप चैट में तीन या उससे ज़्यादा उपयोगकर्ता और चैट ऐप्लिकेशन के बीच बातचीत होती है.
  • नाम वाले स्पेस, हमेशा मौजूद रहते हैं. इनमें लोग मैसेज भेजते हैं, फ़ाइलें शेयर करते हैं, और साथ मिलकर काम करते हैं.

Google Workspace एडमिन के तौर पर, Chat API का इस्तेमाल करके अपने संगठन में नाम वाले स्पेस को खोजा और मैनेज किया जा सकता है. इसके लिए, ये तरीके अपनाएं:

  • संगठन में मौजूद स्पेस की जांच करना. search() तरीके का इस्तेमाल करके, किसी संगठन के सभी स्पेस की सूची हासिल की जा सकती है. इसमें हर स्पेस की सेटिंग और मेटाडेटा की पूरी जानकारी होती है. जैसे, बनाने की तारीख, पिछली गतिविधि की तारीख, सदस्यों की संख्या, इतिहास की सेटिंग की स्थिति, और बाहरी मेहमानों को न्योता भेजने की सुविधा.
  • इनऐक्टिव स्पेस ढूंढना और मिटाना. search() तरीके का इस्तेमाल करके, ऐसे स्पेस ढूंढे जा सकते हैं जिनका इस्तेमाल किसी तय तारीख और समय के बाद नहीं किया गया है. इसके बाद, उन्हें मिटाया जा सकता है. ज़्यादा जानकारी और सैंपल कोड के लिए, इस्तेमाल में नहीं हैं ऐसे स्पेस ढूंढना और मिटाना लेख पढ़ें.
  • खोज के लिए डाली गई शर्तों के हिसाब से, स्पेस की सूची एक्सपोर्ट करना. search() तरीके का इस्तेमाल करके, query में बताई गई शर्तों को पूरा करने वाले स्पेस की सूची देखी जा सकती है. साथ ही, विश्लेषण के लिए नतीजों को CSV फ़ाइल में एक्सपोर्ट किया जा सकता है.
  • स्पेस मैनेजर ढूंढना और उनसे संपर्क करना. search() तरीके का इस्तेमाल करके, किसी संगठन के सभी स्पेस की सूची देखी जा सकती है. इसके बाद, स्पेस के उन सभी सदस्यों की सूची देखने के लिए, members.list() तरीके का इस्तेमाल किया जा सकता है जो मैनेजर हैं.
  • ऐसे स्पेस ढूंढना जिनके लिए मैनेजर नहीं चुने गए हैं. search() तरीके का इस्तेमाल करके, किसी संगठन के सभी स्पेस की सूची देखी जा सकती है. इसके बाद, members.list() तरीके का इस्तेमाल करके उन स्पेस की सूची देखी जा सकती है जिनका कोई मैनेजर नहीं है.

ज़रूरी शर्तें

Python

  • आपके पास Google Workspace का Business या Enterprise वर्शन वाला खाता हो. साथ ही, आपके पास Google Chat का ऐक्सेस हो.
  • आपके पास अपने Google Workspace संगठन के लिए, चैट और स्पेस में होने वाली बातचीत को मैनेज करने के एडमिन के अधिकार होने चाहिए.

एडमिन के तौर पर Google Chat API को कॉल करना

एडमिन के लेवल की अनुमतियों वाले उपयोगकर्ता के तौर पर पुष्टि करने के लिए, आपको अपने अनुरोध में ये चीज़ें शामिल करनी होंगी:

  • ऐसा अनुमति का दायरा तय करें जो एडमिन के खास अधिकारों के साथ उपयोगकर्ता की पुष्टि करने की सुविधा का इस्तेमाल करता हो.
  • useAdminAccess फ़ील्ड को true पर सेट करें.

इस सेक्शन में, एडमिन के तौर पर Chat API को कॉल करने के उदाहरण दिए गए हैं:

अपने संगठन के सभी स्पेस खोजना

इस उदाहरण में बताया गया है कि Google Workspace एडमिन, तय की गई शर्तों के आधार पर संगठन में मौजूद स्पेस खोजने के लिए, Chat API के 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).

नीचे दिए गए कोड में, एडमिन के विशेषाधिकारों का इस्तेमाल करके, ऐसे स्पेस खोजने का उदाहरण दिया गया है जिनके डिसप्ले नेम में "नमस्ते" और "दुनिया", दोनों शब्द शामिल हों. इन शब्दों को किसी भी क्रम में इस्तेमाल किया जा सकता है:

Python

  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(
        'client_secrets.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

इनऐक्टिव स्पेस ढूंढना और मिटाना

इस उदाहरण में बताया गया है कि Google Workspace एडमिन, Chat API के Space संसाधन पर search() तरीके का इस्तेमाल करके, कैसे इनऐक्टिव स्पेस ढूंढ सकते हैं. इसके बाद, useAdminAccess पैरामीटर के साथ delete() तरीके का इस्तेमाल करके, उन्हें मिटा सकते हैं.

Google Chat के ऐसे स्पेस जो अब इस्तेमाल में नहीं हैं, वे स्टोरेज का ज़्यादा से ज़्यादा इस्तेमाल कर सकते हैं. साथ ही, यूज़र इंटरफ़ेस में गड़बड़ी पैदा कर सकते हैं. 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 की जानकारी दें.

नीचे दिए गए कोड में, इनऐक्टिव स्पेस को खोजने और एडमिन के लेवल के ऐक्सेस का इस्तेमाल करके उन्हें मिटाने का उदाहरण दिया गया है:

Python

  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(
          'client_secrets.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