הצגת רשימה של מרחבים משותפים

במדריך הזה מוסבר איך להשתמש במשאב list שבמשאב Space של את Google Chat API כדי להציג מרחבים משותפים. הצגת מרחבים משותפים מחזירה מצב של חלוקה לדפים שניתן לסנן רשימה של מרחבים

משאב אחד (Space) מייצג מקום שבו אנשים ואפליקציות Chat יכולים לשלוח הודעות, לשתף קבצים ולשתף פעולה. יש כמה סוגים של מרחבים משותפים:

  • צ'אטים ישירים הם שיחות בין שני משתמשים או משתמש, אפליקציה ל-Chat.
  • צ'אטים קבוצתיים הם שיחות בין שלושה משתמשים או יותר, אפליקציות צ'אט.
  • מרחבים עם שם הם מקומות קבועים שבהם אנשים שולחים הודעות, משתפים קבצים, ולשתף פעולה.

הצגת רשימה של מרחבים עם אימות אפליקציות מפרטת את המרחבים המשותפים שלאפליקציית Chat יש גישה אליהם. רישום מרחבים עם אימות משתמשים מציגה מרחבים שלמשתמש המאומת יש גישה אליהם.

דרישות מוקדמות

Python

  • Python 3.6 ומעלה
  • הכלי לניהול חבילות pip
  • ספריות הלקוח העדכניות של Google. כדי להתקין או לעדכן אותם, מריצים את הפקודה הבאה בממשק שורת הפקודה:
    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    

Node.js

  • Node.js 14 ומעלה
  • ה-npm כלי לניהול חבילות
  • ספריות הלקוח העדכניות של Google. כדי להתקין או לעדכן אותם, מריצים את הפקודה הבאה בממשק שורת הפקודה:
    npm install @google-cloud/local-auth @googleapis/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.