הגדרת מרחב משותף עם כל מי שיצטרף למרחב המשותף

מדריך זה מסביר איך להשתמש בשיטה setup במשאב Space של Google Chat API כדי להגדיר מרחב משותף ב-Google Chat. כשמגדירים מרחב משותף, המערכת מוסיפה אליו משתמשים ספציפיים.

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

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

כשאתם מגדירים מרחב משותף, כדאי להביא בחשבון את הנקודות הבאות:

  • המשתמש שמתקשר (מאומת) מתווסף אוטומטית למרחב המשותף, כך שלא צריך לציין בבקשה את המינוי שלו.
  • כשיוצרים צ'אט אישי (DM), אם קיים צ'אט בין שני משתמשים, הוא חוזר אליו. אחרת, ייווצר צ'אט אישי.
  • כשיוצרים צ'אט קבוצתי, אם אף אחד מהחברויות שצוינו בבקשה לא נוסף לצ'אט הקבוצתי (למשל, בעיית הרשאה), נוצר צ'אט קבוצתי ריק (כולל רק המשתמש שמתקשר).
  • אי אפשר ליצור מרחבים משותפים עם תשובות בשרשור או לצרף אנשים לא מהארגון שלכם ב-Google Workspace.
  • חברויות כפולות (כולל המשתמש שמתקשר) שצוינו בבקשה יסוננו, ולא יתקבלו הודעות שגיאה.

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

Python

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

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • פרויקט ב-Google Cloud עם ממשק Google Chat API פעיל ומוגדר. במאמר איך יוצרים אפליקציה ל-Google Chat מוסבר איך עושים זאת.
  • הוגדרה הרשאה לאפליקציית Chat. כדי להגדיר מרחב משותף, צריך אימות משתמשים עם היקף ההרשאה chat.spaces.create או chat.spaces.

Node.js

  • Node.js ו-npm
  • ספריות הלקוח העדכניות של Google ל-Node.js. כדי להתקין אותם, מריצים את הפקודה הבאה בממשק שורת הפקודה:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • פרויקט ב-Google Cloud עם ממשק Google Chat API פעיל ומוגדר. במאמר איך יוצרים אפליקציה ל-Google Chat מוסבר איך עושים זאת.
  • הוגדרה הרשאה לאפליקציית Chat. כדי ליצור מרחב משותף צריך אימות משתמשים עם היקף ההרשאה chat.spaces.create או chat.spaces.

איך מגדירים מרחבים משותפים

כדי להגדיר מרחב משותף, צריך להעביר את הפרטים הבאים לבקשה:

  • צריך לציין את היקף ההרשאה chat.spaces.create או chat.spaces.
  • קוראים ל-method setup במשאב Space.
  • כדי להוסיף משתמש אנושי כחבר במרחב משותף, צריך לציין users/{user}, כאשר {user} הוא {person_id} של person מ-People API, או המזהה של user ב-Directory API. לדוגמה, אם המשתמש resourceName ב-People API הוא people/123456789, אפשר להוסיף אותו למרחב המשותף על ידי הוספת המינוי ל-users/123456789 בתור member.name.
  • כדי ליצור צ'אט אישי בין המשתמש שמתקשר לבין משתמש אנושי אחר, אתם צריכים לציין בטופס את פרטי המינוי של המשתמש האנושי.
  • כדי ליצור צ'אט אישי בין המשתמש שמתקשר לבין האפליקציה לשיחות, צריך להגדיר בשדה Space.singleUserBotDm את הערך true בלי לציין חברויות. אפשר להשתמש בשיטה הזו רק כדי ליצור צ'אטים דרך אפליקציית השיחות, במאמר יצירת מינוי מוסבר איך מוסיפים את אפליקציית השיחות כמשתתפים במרחב משותף או כצ'אט קיים בין שני משתמשים.

בדוגמה הבאה אפשר ליצור מרחב משותף עם שם, ולצרף למרחב המשותף שלושה משתמשים – המשתמש המאומת ושני משתמשים ספציפיים אחרים:

Python

  1. בספריית העבודה, יוצרים קובץ בשם chat_space_setup.py.
  2. יש לכלול את הקוד הבא ב-chat_space_setup.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.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then sets up a Chat space by creating a space and adding members.
        '''
    
        # 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().setup(
    
          # Details about the space to set up.
          body = {
    
            # Attributes of the space to set up, like space type and display name.
            'space': {
    
                # To set up a named space, set spaceType to SPACE.
                'spaceType': 'SPACE',
    
                # The user-visible name of the space
                'displayName': 'API-setup'
            },
    
            # The people and app to add to the space.
            #
            # The authenticated user is automatically added to the space,
            # and doesn't need to be specified in the memberships array.
            'memberships': [
                {
                  'member': {
                    'name':'users/123456789',
                    'type': 'HUMAN'
                  }
                },
                {
                  'member': {
                    'name':'users/987654321',
                    'type': 'HUMAN'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. בספריית העבודה, יוצרים ומריצים את הדוגמה:

    python3 chat_space_setup.py
    

Node.js

  1. בספריית העבודה, יוצרים קובץ בשם setup-space.js.
  2. יש לכלול את הקוד הבא ב-setup-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Sets up a new Chat space with users.
    * @return {!Promise<!Object>}
    */
    async function setupSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.create',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.setup({
        requestBody: {
          space: {
            spaceType: 'SPACE',
            displayName: 'API-made',
          },
          memberships: [
            {member: {name: 'users/123456789', type: 'HUMAN'}},
            {member: {name: 'users/987654321', type: 'HUMAN'}},
          ]
        }
      });
    }
    
    setupSpace().then(console.log);
    
  3. בספריית העבודה, מריצים את הדוגמה:

    node setup-space.js
    

הוגדר מרחב צ'אט עם שם שכולל שלושה משתמשים, כולל המשתמש המאומת.

כדי להיכנס למרחב המשותף, תוכלו להשתמש במזהה המשאב של המרחב המשותף כדי ליצור את כתובת ה-URL של המרחב. אפשר לאתר את מזהה המשאב מהמרחב המשותף name בגוף התשובה של Google Chat. לדוגמה, אם השדה name של המרחב המשותף הוא spaces/1234567, תוכלו להיכנס למרחב המשותף באמצעות כתובת ה-URL הבאה: https://mail.google.com/chat/u/0/#chat/space/1234567.