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

במדריך הזה מוסבר איך להשתמש בשיטה list() במשאב SpaceEvent של Google Chat API כדי להציג רשימה של שינויים במשאבים במרחב.

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

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

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

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

Node.js

Python

רשימת אירועים במרחב (אימות משתמש)

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

  • צריך לציין היקף הרשאות אחד או יותר כדי לתמוך בכל סוג אירוע בבקשה. מומלץ לבחור את ההיקף הכי מגביל שעדיין מאפשר לאפליקציה לפעול. במאמר סקירה כללית על אימות והרשאה מוסבר איך לבחור היקף.

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

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

Node.js

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

// Authorization scopes based on the event types
const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships.readonly',
  'https://www.googleapis.com/auth/chat.messages.readonly',
];

// This sample shows how to list space events 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
    parent: 'spaces/SPACE_NAME',
    // A required filter. Filters events about new memberships and messages.
    filter:
      'eventTypes:"google.workspace.chat.membership.v1.created" OR eventTypes:"google.workspace.chat.message.v1.created"',
  };

  // Make the request
  const pageResult = chatClient.listSpaceEventsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

await main();

כדי להריץ את הדוגמה הזו, מחליפים את SPACE_NAME במזהה מתוך name של המרחב. אפשר לקבל את המזהה על ידי הפעלת השיטה ListSpaces() או מכתובת ה-URL של המרחב.

‫Chat API מחזיר רשימה של אירועים במרחב שמוצגים בדפים לגבי חברויות והודעות חדשות.

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

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

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

  • צריך לציין היקף הרשאות אחד או יותר כדי לתמוך בכל סוג אירוע בבקשה. מומלץ לבחור את ההיקף הכי מגביל שעדיין מאפשר לאפליקציה לפעול. מידע נוסף על בחירת היקף זמין במאמר סקירה כללית על אימות והרשאה.
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
  • מפעילים את השיטה list במשאב spaceEvents.
  • מעבירים את name של המרחב כדי להציג את רשימת ההודעות ממנו.
  • מעבירים filter כדי לשלוח שאילתה לגבי סוגים ספציפיים של אירועים.

יצירה של מפתח 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) בפרטי הכניסה של הפרויקט.
    • כדי למנוע שימוש לא מורשה, מומלץ להגביל את המקומות שבהם אפשר להשתמש במפתח ה-API ואת ממשקי ה-API שאפשר להשתמש בו עבורם. פרטים נוספים זמינים במאמר בנושא הוספת הגבלות על ממשקי API.

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

כך מציגים רשימה של אירועים במרחב באמצעות אימות אפליקציה ו-Chat REST API:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # Set authorization scopes based on the
    # event type. For example, if you are getting a space event
    # about a new membership, use the `chat.app.memberships.readonly` scope.
    #
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then lists space events from a specified space.
        '''
    
        # 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().spaceEvents().list(
    
            # The space to list events from.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE_NAME',
    
            # A required filter. Filters events by event type.
            #
            # Update this filter to match your requirements.
            filter='eventTypes:"google.workspace.chat.message.v1.created"'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. בקוד, מחליפים את מה שכתוב בשדות הבאים:

    • API_KEY: מפתח ה-API שיצרתם כדי לבנות את נקודת הקצה של השירות עבור Chat API.
    • SPACE_NAME: שם המרחב, שאפשר לקבל אותו באמצעות השיטה spaces.list ב-Chat API או מכתובת ה-URL של המרחב.
  4. בספריית העבודה, מבצעים build ומריצים את הדוגמה:

    python3 chat_spaceevents_list_app.py

‫Chat API מחזיר רשימה של אירועים במרחב שמוצגים בדפים לגבי חברויות והודעות חדשות.