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

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

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

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

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

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

Python

  • Python 3.6 ואילך
  • הכלי pip לניהול חבילות
  • ספריות הלקוח העדכניות של Google ל-Python. כדי להתקין או לעדכן אותן, מריצים את הפקודה הבאה בממשק שורת הפקודה:

    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
  • ספריות הלקוח העדכניות של Google ל-Node.js. כדי להתקין אותם, מריצים את הפקודה הבאה בממשק שורת הפקודה:

    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
    

ה-API של Chat מחזיר מערך מספור של רווחים.

התאמה אישית של העימוד או סינון הרשימה

כדי להציג רשימה של מרחבים משותפים ב-Google Chat, צריך לשנות את הפרמטרים האופציונליים של השאילתות כדי להתאים אישית את העימוד או לסנן את המרחבים המשותפים שברשימה:

  • pageSize: מספר הרווחים המקסימלי שיש להחזיר. השירות עשוי להחזיר פחות מהערך הזה. אם לא צוין אחרת, מוחזרים 100 רווחים לכל היותר. הערך המקסימלי הוא 1,000. ערכים מעל 1,000 משתנים באופן אוטומטי ל-1,000.
  • pageToken: אסימון דף שהתקבל מקריאה קודמת של מרחבים משותפים ברשימה. מספקים את האסימון הזה כדי לאחזר את הדף הבא. במהלך העימוד, ערך המסנן צריך להתאים לקריאה שסיפקה את אסימון הדף. העברת ערך אחר עלולה להוביל לתוצאות בלתי צפויות.
  • filter: מסנן שאילתות. למידע על שאילתות נתמכות, ראו השיטה spaces.list.