स्पेस की सूची बनाएं

इस गाइड में बताया गया है कि स्पेस की सूची बनाने के लिए, Google Chat API के Space संसाधन पर मौजूद list संसाधन का इस्तेमाल कैसे किया जाता है. लिस्टिंग स्पेस, स्पेस की पेज नंबर वाली, फ़िल्टर की जा सकने वाली सूची दिखाते हैं.

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

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

लिस्टिंग स्पेस में, ऐप्लिकेशन की पुष्टि करने की सुविधा होती है. इसमें उन स्पेस की सूची होती है जिनका ऐक्सेस Chat ऐप्लिकेशन के पास होता है. उपयोगकर्ता की पुष्टि करने वाले स्टोर पेज में, उन स्पेस की सूची होती है जिनका ऐक्सेस पुष्टि किए गए उपयोगकर्ता के पास है.

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

Python

  • Python 3.6 या इससे नया वर्शन
  • pip पैकेज मैनेजमेंट टूल
  • Python के लिए नई Google क्लाइंट लाइब्रेरी. उन्हें इंस्टॉल या अपडेट करने के लिए, अपने कमांड-लाइन इंटरफ़ेस में नीचे दिया गया कमांड चलाएं:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • ऐसा Google Cloud प्रोजेक्ट जिसमें Google Chat API चालू हो और उसे कॉन्फ़िगर किया गया हो. तरीका जानने के लिए, Google Chat ऐप्लिकेशन बनाना देखें.
  • Chat ऐप्लिकेशन के लिए अनुमति कॉन्फ़िगर कर दी गई है. लिस्टिंग स्पेस में, पुष्टि करने के इन दोनों तरीकों का इस्तेमाल किया जा सकता है:

Node.js

  • Node.js और npm
  • Node.js के लिए नई Google क्लाइंट लाइब्रेरी. उन्हें इंस्टॉल करने के लिए, अपने कमांड-लाइन इंटरफ़ेस में इस कमांड को चलाएं:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • ऐसा Google Cloud प्रोजेक्ट जिसमें Google Chat API चालू हो और उसे कॉन्फ़िगर किया गया हो. तरीका जानने के लिए, Google Chat ऐप्लिकेशन बनाना देखें.
  • Chat ऐप्लिकेशन के लिए अनुमति कॉन्फ़िगर कर दी गई है. लिस्टिंग स्पेस में, पुष्टि करने के इन दोनों तरीकों का इस्तेमाल किया जा सकता है:

उपयोगकर्ता की पुष्टि करने वाले स्पेस की सूची बनाना

Google Chat में स्पेस की सूची बनाने के लिए, अपने अनुरोध में यह जानकारी दें:

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

Python

  1. अपनी वर्किंग डायरेक्ट्री में, chat_space_list.py नाम की एक फ़ाइल बनाएं.
  2. chat_space_list.py में यह कोड शामिल करें:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists named spaces and group chats (but not direct messages)
        visible to the authenticated user.
        '''
    
        # 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)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().list(
    
              # An optional filter that returns named spaces or unnamed group chats,
              # but not direct messages (DMs).
              filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
          ).execute()
    
        # Prints the returned list of spaces.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. अपनी वर्किंग डायरेक्ट्री में, यह सैंपल बनाएं और चलाएं:

    python3 chat_space_list.py
    

Node.js

  1. अपनी वर्किंग डायरेक्ट्री में, list-spaces.js नाम की एक फ़ाइल बनाएं.
  2. list-spaces.js में यह कोड शामिल करें:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. अपनी वर्किंग डायरेक्ट्री में, सैंपल चलाएं:

    node list-spaces.js
    

Chat API, नाम वाले स्पेस और ग्रुप चैट की पेज नंबर वाली एक सूची दिखाता है.

ऐप्लिकेशन की पुष्टि करने वाले स्पेस की सूची बनाना

Google Chat में स्पेस की सूची बनाने के लिए, अपने अनुरोध में यह जानकारी दें:

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

Python

  1. अपनी वर्किंग डायरेक्ट्री में, chat_space_list_app.py नाम की एक फ़ाइल बनाएं.
  2. chat_space_list_app.py में यह कोड शामिल करें:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().list(
    
            # An optional filter that returns named spaces or unnamed
            # group chats, but not direct messages (DMs).
            filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
        ).execute()
    
    print(result)
    
  3. अपनी वर्किंग डायरेक्ट्री में, यह सैंपल बनाएं और चलाएं:

    python3 chat_space_list_app.py
    

Node.js

  1. अपनी वर्किंग डायरेक्ट्री में, app-list-spaces.js नाम की एक फ़ाइल बनाएं.
  2. app-list-spaces.js में यह कोड शामिल करें:

    const chat = require('@googleapis/chat');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.bot',
      ];
    
      const auth = new chat.auth.GoogleAuth({
        scopes,
        keyFilename: 'credentials.json',
      });
    
      const authClient = await auth.getClient();
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. अपनी वर्किंग डायरेक्ट्री में, सैंपल चलाएं:

    node app-list-spaces.js
    

Chat API, पेजों के हिसाब से स्पेस दिखाता है.

पसंद के मुताबिक पेज पर नंबर डालना या सूची को फ़िल्टर करना

Google Chat में स्पेस को सूची में जोड़ने के लिए, यहां दिए गए वैकल्पिक क्वेरी पैरामीटर पास करें. इससे, सूची में मौजूद स्पेस के क्रम को अपनी पसंद के मुताबिक बनाया जा सकता है या उन्हें फ़िल्टर किया जा सकता है:

  • pageSize: दिखाए जाने वाले स्पेस की ज़्यादा से ज़्यादा संख्या. ऐसा हो सकता है कि सेवा, इस वैल्यू से कम वैल्यू दिखाए. अगर कोई स्पेस तय नहीं किया गया है, तो ज़्यादा से ज़्यादा 100 स्पेस दिए जा सकते हैं. इसके लिए, ज़्यादा से ज़्यादा वैल्यू 1,000 हो सकती है. 1,000 से ज़्यादा की वैल्यू अपने-आप 1,000 में बदल जाती हैं.
  • pageToken: पेज का टोकन, जो पिछली सूची के स्पेस कॉल से मिला होता है. अगले पेज को फिर से पाने के लिए यह टोकन दें. पेज पर नंबर लगाते समय, फ़िल्टर की वैल्यू, पेज टोकन से मिले कॉल से मैच करनी चाहिए. कोई अलग वैल्यू पास करने पर, अनचाहे नतीजे मिल सकते हैं.
  • filter: क्वेरी फ़िल्टर. इस्तेमाल की जा सकने वाली क्वेरी की जानकारी के लिए, spaces.list तरीका देखें.