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

מדריך זה מסביר איך משתמשים בשיטה list במשאב membership של Google Chat API כדי להציג את רשימת המשתמשים ואת אפליקציית Chat במרחבים משותפים, בתור רשימת משתתפים מקובצת וניתנת לסינון. ברשימת משתמשים עם אימות אפליקציות מופיעה רשימת המשתתפים במרחבים משותפים שלאפליקציית Chat יש גישה אליהם, אבל לא כולל מינויים באפליקציית Chat, כולל המשתתפים שלה. בדף העסקי עם אימות משתמשים מופיעה רשימת חברי הקבוצה במרחבים משותפים שלמשתמש מאומת יש גישה אליהם.

המשאב Membership מייצג אם משתמש אנושי או אפליקציית Google 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. חברי הרשומה תומכים בשתי שיטות האימות הבאות:

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

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

בדוגמה הבאה מופיעים המשתמשים במרחב המשותף (ולא מנהלי המרחב המשותף) שגלויים למשתמשים המאומתים כי filter מוגדר ל-ROLE_Member:

Python

  1. בספריית העבודה, יוצרים קובץ בשם chat_member_list_user.py.
  2. יש לכלול את הקוד הבא ב-chat_member_list_user.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.memberships.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists human space members (but not space managers) in a
        specified space.
        '''
    
        # 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().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. בקוד, מחליפים את SPACE בשם של מרחב משותף, שאותו אפשר לקבל מה-method spaces.list ב-Chat API או מכתובת ה-URL של המרחב המשותף.

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

    python3 chat_member_list_user.py
    

ב-Google Chat API תוצג רשימה של כל המשתמשים במרחב המשותף (לא כולל מנהלי המרחב המשותף) ושאר המשתמשים באפליקציה מהמרחב המשותף.

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

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

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

Python

  1. בספריית העבודה, יוצרים קובץ בשם chat_member_list_app.py.
  2. יש לכלול את הקוד הבא ב-chat_member_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().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
    print(result)
    
  3. בקוד, מחליפים את SPACE בשם של מרחב משותף, שאותו אפשר לקבל מה-method spaces.list ב-Chat API או מכתובת ה-URL של המרחב המשותף.

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

    python3 chat_member_list_app.py
    

ב-Google Chat API תוצג רשימה של כל המשתמשים במרחב המשותף (לא כולל מנהלי המרחב המשותף) מהמרחב המשותף.

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

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

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