הצגת אירועים ממרחב משותף ב-Google Chat

במדריך הזה מוסבר איך משתמשים ב-method list במשאב SpaceEvent ב-Google Chat API כדי לרשום שינויים במשאבים במרחב המשותף.

המשאב SpaceEvent מייצג שינוי במרחב המשותף, כולל המשאבים הצאצאים של המרחב המשותף, כמו הודעות, תגובות ומינויים. מידע נוסף על רשימת סוגי האירועים ומטענים ייעודיים של אירועים נתמכים זמין בשדות eventType ו-payload במסמכי התיעוד של המשאב SpaceEvent.

אתם יכולים לרשום אירועים עד 28 ימים לפני מועד שליחת הבקשה. השרת מחזיר אירועים שמכילים את הגרסה העדכנית ביותר של המשאב המושפע. לדוגמה, אם יוצרים רשימת אירועים של משתמשים חדשים במרחב המשותף, השרת מחזיר משאבים עם פרטי החברות העדכניים ביותר מ-Membership. אם הוסרו חברים חדשים במהלך התקופה המבוקשת, המטען הייעודי (payload) של האירוע מכיל משאב Membership ריק.

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

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

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. במקורות המידע SpaceEvent יש תמיכה בשיטות האימות הבאות:

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

כדי ליצור רשימה של אירועים ממרחב משותף ב-Chat:

  • קוראים ל-method list במשאב SpaceEvent.
  • בשדה filter מציינים אילו סוגי אירועים רוצים להציג ברשימה. צריך לציין לפחות סוג אחד של אירוע, ואפשר גם לסנן לפי תאריך. רשימה של סוגי אירועים נתמכים זמינה בשדה eventType.
  • באמצעות אימות משתמשים, מציינים היקף הרשאה אחד או יותר כדי לתמוך בכל סוג אירוע בבקשה. השיטה המומלצת היא לבחור את ההיקף המגביל ביותר שעדיין מאפשר לאפליקציה לפעול. תוכלו לקרוא את הסקירה הכללית על אימות והרשאות כדי לבחור היקף.

בדוגמת הקוד הבאה אתם יכולים לראות אירועים בקשר להודעות ולמינויים חדשים במרחבים משותפים.

Python

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

    """Lists SpaceEvent resources from the Chat API."""
    
    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",
    "https://www.googleapis.com/auth/chat.messages.readonly"]
    
    # 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().spaceEvents().list(
    
        # The space from which to list events.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # A required filter. Filters and returns events about new memberships and messages
        filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"'
    
    ).execute()
    
    # Prints details about the created space events.
    print(result)
    
  3. בקוד, מחליפים את מה שכתוב בשדות הבאים:

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

    python3 chat_space_event_list.py
    

ה-Chat API מחזיר רשימה של אירועי SpaceEvent משאבים בנושא הודעות ומינויים חדשים.

התאמה אישית של העימוד

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

  • pageSize: המספר המקסימלי של SpaceEvent משאבים שיש להחזיר. השירות עשוי להחזיר פחות מהערך הזה. ערכים שליליים מחזירים את השגיאה INVALID_ARGUMENT.
  • pageToken: אסימון דף שהתקבל מקריאה קודמת לאירועי מרחב משותף ברשימה. מספקים את האסימון הזה כדי לאחזר את הדף הבא. במהלך העימוד, ערך המסנן צריך להתאים לקריאה שסיפקה את אסימון הדף. העברת ערך אחר עלולה להוביל לתוצאות בלתי צפויות.