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

במדריך הזה מוסבר איך להשתמש ב-method list במשאב membership ב-Google Chat API כדי להציג את רשימת החברים במרחב המשותף כרשימה מחולקת לדפים של חברות במרחב המשותף, שאפשר לסנן לפי חלוקה לדפים. כשמציגים רשימת מינויים עם אימות אפליקציות, רשומים חברים במרחבים משותפים שאליהם יש לאפליקציית 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. רשימת חברי המועדון תומכת בשתי שיטות האימות הבאות:

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

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

  • באמצעות אימות משתמשים, מציינים את היקף ההרשאות chat.memberships.readonly או chat.memberships.
  • קוראים ל-method list במשאב membership.
  • כדי להציג רשימה של קבוצות Google, צריך להגדיר את פרמטר השאילתה showGroups כ-true.

בדוגמה הבאה מוצגת רשימה של חברי הקבוצה ב-Google, החברים באפליקציה והחברים בקבוצה שגלויים למשתמש המאומת.

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 Google Group, human, and app members 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',
    
            # Set this parameter to list Google Groups.
            showGroups = 'true'
    
        ).execute()
    
        # Prints the list of memberships.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. בקוד, מחליפים את SPACE בשם של מרחב משותף, שאפשר לקבל באמצעות ה-method spaces.list ב-Chat API או מכתובת ה-URL של המרחב.

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

    python3 chat_member_list_user.py
    

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

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

כדי להציג רשימה של המשתמשים ואפליקציית 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: מסנן שאילתות. נדרש אימות משתמש. למידע על נתוני שאילתות נתמכים, ראו method spaces.members.list.