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

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

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

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

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

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

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

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

Python

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

एडमिन के तौर पर 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).

यहां दिए गए कोड में, एडमिन के अधिकारों का इस्तेमाल करके, ऐसे स्पेस खोजने का तरीका बताया गया है जिनके डिसप्ले नेम में "Hello" और "World" शामिल है. ये शब्द किसी भी क्रम में हो सकते हैं:

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

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

इस उदाहरण में बताया गया है कि 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(
          '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