איך מסירים אנשים ממרחבים משותפים

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

אדמינים ב-Google Workspace יכולים להסיר משתמשים, קבוצות Google או אפליקציות ל-Chat מכל מרחב בארגון שלהם ב-Google Workspace.

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

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

Node.js

הסרת משתמש ממרחב

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

  • מציינים את chat.memberships היקף ההרשאה. למשתמש שנותן את ההרשאה צריכה להיות הרשאה להסיר את המשתמש או את קבוצת Google מהמרחב. כדי להסיר אפליקציה ל-Chat, צריך לציין את היקף ההרשאות chat.memberships.app (אפליקציות יכולות למחוק רק את החברות שלהן, ולא את החברות של אפליקציות אחרות). מומלץ לבחור את ההיקף הכי מצומצם שעדיין מאפשר לאפליקציה לפעול.
  • מבצעים קריאה ל-method‏ DeleteMembership().
  • מעבירים את name של המינוי למחיקה. אם החברות שייכת למנהל המרחב היחיד במרחב, צריך להקצות משתמש אחר כמנהל המרחב לפני שמוחקים את החברות הזו.

כך מוחקים חברות עם אימות משתמש:

Node.js

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

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

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

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    name: 'spaces/SPACE_NAME'
  };

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

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

main().catch(console.error);

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

  • SPACE_NAME: המזהה מname המרחב. אפשר לקבל את המזהה באמצעות הקריאה ל-method‏ ListSpaces() או מכתובת ה-URL של המרחב.
  • MEMBER_NAME: המזהה מתוך name של החבר. אפשר לקבל את המזהה באמצעות הפעלת השיטה ListMemberships().

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יחזיר את החברות עם 'state': 'NOT_A_MEMBER', שמציין שהמשתמש כבר לא במרחב.

{
    "name": "spaces/SPACE_NAME/members/MEMBER_NAME",
    "state": "NOT_A_MEMBER"
}

איך מסירים משתמשים ממרחבים באמצעות אפליקציית Chat

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

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

  • מציינים את chat.app.memberships היקף ההרשאות. מחיקת חברות של מנהל/ת מרחב נתמכת רק במרחבים שנוצרו על ידי אפליקציות ל-Chat.
  • מפעילים את השיטה delete במשאב membership.
  • מעבירים את name של המינוי למחיקה. אם החברות שייכת למנהל המרחב היחיד במרחב, צריך להקצות משתמש אחר כמנהל המרחב לפני שמוחקים את החברות הזו.

יצירה של מפתח API

כדי לקרוא ל-method של API בגרסת טרום-השקה למפתחים, צריך להשתמש בגרסת טרום-השקה למפתחים של מסמך גילוי ה-API, שאינה ציבורית. כדי לאמת את הבקשה, צריך להעביר מפתח API.

כדי ליצור את מפתח ה-API, פותחים את פרויקט Google Cloud של האפליקציה ומבצעים את הפעולות הבאות:

  1. במסוף Google Cloud, לוחצים על סמל התפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create credentials > API key.
  3. מפתח ה-API החדש מוצג.
    • לוחצים על סמל ההעתקה כדי להעתיק את מפתח ה-API לשימוש בקוד של האפליקציה. אפשר גם למצוא את מפתח ה-API בקטע API keys (מפתחות API) בפרטי הכניסה של הפרויקט.
    • לוחצים על Restrict key כדי לעדכן את ההגדרות המתקדמות ולהגביל את השימוש במפתח ה-API. פרטים נוספים זמינים במאמר החלת הגבלות על מפתחות API.

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

כך מוחקים מינוי באמצעות אימות באפליקציה:

Python

  1. בספריית העבודה, יוצרים קובץ בשם chat_membership_delete_app.py.
  2. מוסיפים את הקוד הבא אל chat_membership_delete_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 deletes the specified membership.
        '''
    
        # 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, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().members().delete(
    
            # The membership to delete.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBER with a membership name.
            # Obtain the membership name from the memberships resource of
            # Chat API. To delete a Chat app's membership, replace MEMBER
            # with app; an alias for the app calling the API.
            name='spaces/SPACE/members/MEMBER'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        # When deleting a membership, the response body is empty.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. בקוד, מחליפים את הפרטים הבאים:

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

    • SPACE: שם המרחב, שאפשר לקבל באמצעות השיטה spaces.list ב-Chat API, או מכתובת ה-URL של המרחב.

    • MEMBER: שם החברות, שאפשר לקבל באמצעות spaces.members.list method ב-Chat API. כדי למחוק את החברות במועדון של אפליקציה, מחליפים את MEMBER ב-app.

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

    python3 chat_membership_delete_app.py

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יחזיר את החברות עם 'state': 'NOT_A_MEMBER', שמציין שהמשתמש כבר לא במרחב.

{
    "name": "spaces/SPACE/members/MEMBER",
    "state": "NOT_A_MEMBER"
}

איך מסירים משתמשים או קבוצות Google ממרחבים משותפים כאדמינים ב-Google Workspace

אדמינים ב-Google Workspace יכולים להשתמש בשיטה DeleteMembership() כדי להסיר משתמשים, קבוצות Google או אפליקציות ל-Chat מכל מרחב בארגון שלהם ב-Google Workspace.

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

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

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

מגבלות ושיקולים

  • באמצעות אימות אפליקציות, אפליקציית Chat יכולה להסיר משתמשים, אבל לא קבוצות Google או אפליקציות Chat.