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

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

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

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

כשיוצרים מרחב משותף, כדאי:

  • המשתמש ששלח את הקריאה (המאומת) יתווסף אוטומטית למרחב המשותף, כך שלא צריך לציין בבקשה את החברות של המשתמש הזה.
  • כשיוצרים צ'אט אישי, אם יש שני משתמשים בצ'אט אישי, הוא מוחזר. אם לא, נוצרת צ'אט.
  • כשיוצרים צ'אט קבוצתי, אם אף אחד מהחברויות שצוינו בבקשה לא נוסף בהצלחה לצ'אט הקבוצתי (למשל, בגלל בעיית הרשאה), יכול להיות שייווצר צ'אט קבוצתי ריק (כולל רק את המשתמש המתקשר).
  • אי אפשר להגדיר מרחבים עם תשובות לשרשורים או לצרף אנשים מחוץ ל-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.
  • כדי לצרף למרחב המשותף קבוצה, צריך לציין groups/{group}, כאשר {group} הוא מזהה הקבוצה שבה רוצים ליצור חברות. אפשר לאחזר את מזהה הקבוצה באמצעות Cloud Identity API. לדוגמה, אם Cloud Identity API מחזיר קבוצה בשם groups/123456789, צריך להגדיר את membership.groupMember.name ל-groups/123456789. אי אפשר לצרף קבוצות Google לצ'אטים קבוצתיים או לצ'אטים קבוצתיים, אלא רק למרחבים משותפים עם שם.
  • כדי ליצור צ'אט בין המשתמש שמתקשר למשתמש אנושי אחר, צריך לציין בבקשה את מספר החברים של המשתמש האנושי.
  • כדי ליצור צ'אט אישי בין המשתמש המתקשר לבין אפליקציית השיחות, צריך להגדיר את 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 users and groups 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'
                  }
                },
                {
                  'groupMember': {
                    'name': 'groups/11223344'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created space.
        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'}},
            {groupMember: {name: 'groups/11223344'}},
          ]
        }
      });
    }
    
    setupSpace().then(console.log);
    
  3. בספריית העבודה, מריצים את הדוגמה:

    node setup-space.js
    

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

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