עדכון חברות של משתמש במרחב משותף ב-Google Chat

במדריך הזה מוסבר איך להשתמש בשיטה update() במשאב Membership של Google Chat API כדי לשנות מאפיינים של חברות, כמו שינוי של משתתף במרחב לבעלים של המרחב, או שינוי של בעלים של המרחב למשתתף במרחב.

אדמינים ב-Google Workspace יכולים להתקשר לשיטת update() כדי לעדכן את החברות בכל מרחב בארגון שלהם ב-Google Workspace.

המשאב Membership מייצג אם משתמש אנושי או אפליקציית Google Chat הוזמנו למרחב, הם חלק ממנו או שהם לא נמצאים בו.

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

Node.js

עדכון המינוי

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

  • מציינים היקף הרשאה:
    • באימות משתמשים, צריך לציין את היקף ההרשאה chat.memberships.
    • באימות אפליקציות, מציינים את היקף ההרשאה של chat.app.memberships. כשמעדכנים חברות במועדון עם אימות באפליקציה, אפשר לעדכן רק חברות במועדון במרחבים שנוצרו על ידי אפליקציות ל-Chat. כדי לאמת אפליקציה, צריך אישור אדמין חד-פעמי.
  • מבצעים קריאה ל-method‏ UpdateMembership().
  • מעבירים את membership כעותק של Membership עם הפרטים הבאים:
    • השדה name מוגדר לחברות שרוצים לעדכן, כולל מזהה המרחב ומזהה החבר.
    • השדות של החברות שצריך לעדכן מוגדרים לערכים החדשים.
  • מעבירים את updateMask כדי לציין את ההיבטים של החברות שרוצים לעדכן, כולל:
    • role: התפקיד של המשתמש במרחב ב-Chat, שקובע את הפעולות שהוא יכול לבצע במרחב. הערכים האפשריים הם:
      • ROLE_MEMBER: משתתף במרחב. בממשק המשתמש של Chat, התפקיד הזה נקרא חבר. למשתמש יש הרשאות בסיסיות, כמו שליחת הודעות במרחב. בשיחות אישיות ובשיחות קבוצתיות ללא שם, לכולם יש את התפקיד הזה.
      • ROLE_MANAGER: הבעלים של המרחב. בממשק המשתמש של Chat, התפקיד הזה נקרא בעלים. למשתמש יש את כל ההרשאות הבסיסיות וגם הרשאות אדמיניסטרטיביות שמאפשרות לו לנהל את המרחב, כמו הוספה או הסרה של משתתפים. האפשרות הזו נתמכת רק במרחבים שבהם spaceType הוא SPACE (מרחבים עם שם).

שינוי התפקיד של חבר/ה בקבוצה לבעלים (אימות משתמש)

בדוגמה הבאה מתבצעת קריאה ל-Chat API באמצעות אימות משתמשים כדי להפוך חבר רגיל במרחב לבעלים של המרחב. לשם כך מציינים את role כ-ROLE_MANAGER:

Node.js

chat/client-libraries/cloud/update-membership-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships',
];

// This sample shows how to update a membership with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME',
    },
    updateMask: {
      // The field paths to update.
      paths: ['role'],
    },
  };

  // Make the request
  const response = await chatClient.updateMembership(request);

  // Handle the response
  console.log(response);
}

await main();

כדי להריץ את הדוגמה, מחליפים את הערכים הבאים:

  • SPACE_NAME: המזהה מname של המרחב. אפשר לקבל את המזהה על ידי הפעלת השיטה ListSpaces() או מכתובת ה-URL של המרחב.
  • MEMBER_NAME: המזהה מתוך name של החברות. אפשר לקבל את המזהה על ידי קריאה לשיטה ListMemberships() או מגוף התגובה שמוחזר אחרי יצירת חברות באופן אסינכרוני באמצעות Chat API.
  • ROLE_NAME: התפקיד המעודכן, ROLE_MANAGER.

ממשק ה-API של Google Chat מעדכן את החברות שצוינה לבעלות על המרחב ומחזיר מופע של Membership.

שינוי התפקיד של בעלים למשתמש/ת (אימות משתמש)

בדוגמה הבאה מתבצעת קריאה ל-Chat API באמצעות אימות משתמשים כדי להפוך את הבעלים של המרחב לחבר רגיל במרחב. לשם כך מציינים את הערך role בתור ROLE_MEMBER:

Node.js

chat/client-libraries/cloud/update-membership-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships',
];

// This sample shows how to update a membership with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME',
    },
    updateMask: {
      // The field paths to update.
      paths: ['role'],
    },
  };

  // Make the request
  const response = await chatClient.updateMembership(request);

  // Handle the response
  console.log(response);
}

await main();

כדי להריץ את הדוגמה, מחליפים את הערכים הבאים:

  • SPACE_NAME: המזהה מname של המרחב. אפשר לקבל את המזהה על ידי הפעלת השיטה ListSpaces() או מכתובת ה-URL של המרחב.
  • MEMBER_NAME: המזהה מתוך name של החברות. אפשר לקבל את המזהה על ידי קריאה לשיטה ListMemberships() או מגוף התגובה שמוחזר אחרי יצירת חברות באופן אסינכרוני באמצעות Chat API.
  • ROLE_NAME: התפקיד המעודכן, ROLE_MEMBER.

ממשק ה-API של Google Chat מעדכן את החברות שצוינה לבעלות על המרחב ומחזיר מופע של Membership.

שינוי התפקיד של משתמש/ת מחבר/ה לקבוצה לבעלים (אימות באפליקציית Chat)

כדי לאמת אפליקציה, צריך אישור אדמין חד-פעמי.

כתיבת סקריפט שקורא ל-Chat API

בדוגמה הבאה מבוצעת קריאה ל-Chat API באמצעות אימות אפליקציה כדי להגדיר חבר רגיל במרחב כבעלים של המרחב. לשם כך מציינים את role כ-ROLE_MANAGER ב-body שמציין את מאפייני החברות המעודכנים:

Python

  1. בספריית העבודה, יוצרים קובץ בשם chat_membership_update_to_owner_app.py.
  2. מוסיפים את הקוד הבא אל chat_membership_update_to_owner_app.py:

    from google.oauth2 import service_account
    from apiclient.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.app.memberships"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then updates a specified space member to change
        it from a regular member to a space owner.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().members().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MANAGER'}
    
          ).execute()
    
        # Prints details about the updated membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. בקוד, מחליפים את מה שכתוב בשדות הבאים:

  4. בספריית העבודה, מבצעים build ומריצים את הדוגמה:

    python3 chat_membership_update_to_owner_app.py

שינוי התפקיד של בעלים למשתמש/ת שהצטרף/ה (אימות באפליקציית Chat)

כדי לאמת אפליקציה, צריך אישור אדמין חד-פעמי.

כתיבת סקריפט שקורא ל-Chat API

בדוגמה הבאה מבוצעת קריאה ל-Chat API באמצעות אימות אפליקציה כדי להפוך את הבעלים של המרחב לחבר רגיל במרחב. לשם כך, מציינים את role כ-ROLE_MEMBER ב-body שמציין את מאפייני החברות המעודכנים:

Python

  1. בספריית העבודה, יוצרים קובץ בשם chat_membership_update_to_member_app.py.
  2. מוסיפים את הקוד הבא אל chat_membership_update_to_member_app.py:

    from google.oauth2 import service_account
    from apiclient.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.app.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates a specified space owner to change
        it to a regular member.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().members().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MEMBER'}
    
          ).execute()
    
        # Prints details about the updated membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. בקוד, מחליפים את מה שכתוב בשדות הבאים:

  4. בספריית העבודה, מבצעים build ומריצים את הדוגמה:

    python3 chat_membership_update_to_member_app.py

עדכון חברות כאדמין ב-Google Workspace

אדמינים ב-Google Workspace יכולים להתקשר לשיטת update() כדי לעדכן את החברות בכל מרחב בארגון שלהם ב-Google Workspace.

כדי להפעיל את ה-method הזה כאדמינים ב-Google Workspace, צריך לבצע את הפעולות הבאות:

  • קוראים ל-method באמצעות אימות משתמש, ומציינים היקף הרשאות שתומך בקריאה ל-method באמצעות הרשאות אדמין.
  • בבקשה, מציינים את פרמטר השאילתה useAdminAccess כ-true.

מידע נוסף ודוגמאות זמינים במאמר ניהול מרחבים ב-Google Chat כאדמינים ב-Google Workspace.