डायरेक्ट मैसेज (DM) स्पेस ढूंढना

इस गाइड में, डायरेक्ट मैसेज (DM) स्पेस के बारे में जानकारी पाने के लिए, Google Chat API के Space संसाधन पर findDirectMessage तरीके का इस्तेमाल करने का तरीका बताया गया है.

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

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

ऐप्लिकेशन की पुष्टि करने से, Chat ऐप्लिकेशन को ऐसे DM मिलते हैं जिनका ऐक्सेस Chat ऐप्लिकेशन को Google Chat में मिलता है (उदाहरण के लिए, DM इसका सदस्य है). उपयोगकर्ता की पुष्टि करने की सुविधा से पुष्टि करने पर, ऐसे DM दिखते हैं जिन्हें पुष्टि करने वाले उपयोगकर्ता के पास ऐक्सेस किया गया है.

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

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 में कोई डायरेक्ट मैसेज ढूंढने के लिए, अपने अनुरोध में यह जानकारी दें:

  • ऐप्लिकेशन की पुष्टि करने के साथ, chat.bot के लिए अनुमति का स्कोप तय करें. उपयोगकर्ता की पुष्टि करने की सुविधा के साथ, chat.spaces.readonly या chat.spaces के लिए अनुमति का दायरा बताएं.
  • वापस आने के लिए, DM में मौजूद अन्य उपयोगकर्ता के name को पास करते हुए, User रिसॉर्स पर findDirectMessage तरीका कॉल करें. उपयोगकर्ता की पुष्टि करने का यह तरीका, कॉल करने वाले उपयोगकर्ता और चुने गए उपयोगकर्ता के बीच DM दिखाता है. ऐप्लिकेशन की पुष्टि करने का यह तरीका, कॉल करने वाले ऐप्लिकेशन और चुने गए उपयोगकर्ता के बीच DM दिखाता है.
  • किसी उपयोगकर्ता को स्पेस के सदस्य के तौर पर जोड़ने के लिए, users/{user} के बारे में बताएं. यहां users/{user}, People API में person के लिए {person_id} है या डायरेक्ट्री एपीआई में user का आईडी है.{user} उदाहरण के लिए, अगर People API व्यक्ति resourceName people/123456789 है, तो आपके पास स्पेस में उपयोगकर्ता को जोड़ने के लिए, users/123456789 की सदस्यता को member.name के तौर पर शामिल करने का विकल्प होता है.

उपयोगकर्ता की पुष्टि करने वाला डायरेक्ट मैसेज ढूंढना

उपयोगकर्ता की पुष्टि करने की सुविधा से डायरेक्ट मैसेज ढूंढने का तरीका यहां बताया गया है:

Python

  1. अपनी वर्किंग डायरेक्ट्री में, chat_space_find_dm_user.py नाम की एक फ़ाइल बनाएं.
  2. chat_space_find_dm_user.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 returns details about a specified DM.
        '''
    
        # 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().findDirectMessage(
    
              # The other user in the direct message (DM) to return.
              #
              # Replace USER with a user name.
              name='users/USER'
    
          ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. कोड में, USER को Google Chat में मौजूद User के name से बदलें.

  4. अपनी वर्किंग डायरेक्ट्री में, यह सैंपल बनाएं और चलाएं:

    python3 chat_space_find_dm_user.py
    

Node.js

  1. अपनी वर्किंग डायरेक्ट्री में, find-direct-message-space.js नाम की फ़ाइल बनाएं.

  2. find-direct-message-space.js में यह कोड शामिल करें:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      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.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. कोड में, USER को Google Chat में मौजूद User के name से बदलें.

  4. अपनी वर्किंग डायरेक्ट्री में, सैंपल चलाएं:

    node find-direct-message-space.js
    

Chat API, Space का एक इंस्टेंस दिखाता है, जिसमें बताए गए DM की जानकारी होती है.

ऐप्लिकेशन की पुष्टि करने वाला डायरेक्ट मैसेज ढूंढना

ऐप्लिकेशन की पुष्टि करने की सुविधा से डायरेक्ट मैसेज ढूंढने का तरीका यहां बताया गया है:

Python

  1. अपनी वर्किंग डायरेक्ट्री में, chat_space_find_dm_app.py नाम की एक फ़ाइल बनाएं.
  2. chat_space_find_dm_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().findDirectMessage(
    
        # The other user in the direct message (DM) to return.
        #
        # Replace USER with a user name.
        name='users/USER'
    
    ).execute()
    
    print(result)
    
  3. कोड में, USER को Google Chat में मौजूद User के name से बदलें.

  4. अपनी वर्किंग डायरेक्ट्री में, यह सैंपल बनाएं और चलाएं:

    python3 chat_space_find_dm_app.py
    

Node.js

  1. अपनी वर्किंग डायरेक्ट्री में, app-find-direct-message-space.js नाम की फ़ाइल बनाएं.

  2. app-find-direct-message-space.js में यह कोड शामिल करें:

    const chat = require('@googleapis/chat');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      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.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. कोड में, USER को Google Chat में मौजूद User के name से बदलें.

  4. अपनी वर्किंग डायरेक्ट्री में, सैंपल चलाएं:

    node app-find-direct-message-space.js
    

Chat API, Space का एक इंस्टेंस दिखाता है, जिसमें बताए गए DM की जानकारी होती है.