קבלת פרטים על אירוע של מרחב משותף ב-Google Chat

במדריך הזה מוסבר איך להשתמש בשיטה get() במשאב SpaceEvent של Google Chat API כדי לקבל פרטים על אירוע במרחב ב-Google Chat.

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

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

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

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

Node.js

Python

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

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

  • מציינים היקף הרשאות שתומך בסוג האירוע שבבקשה. מומלץ לבחור את היקף ההרשאות המגביל ביותר שעדיין מאפשר לאפליקציה לפעול.
  • מבצעים קריאה ל-method‏ GetSpaceEvent() ומעבירים את name של האירוע במרחב כדי לקבל אותו.

בדוגמה הבאה מאחזרים אירוע במרחב:

Node.js

בדוגמת הקוד הזו ב-Node.js נעשה שימוש ב-Chat RPC API.

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

// Replace SCOPE_NAME here with an authorization scope based on the event type
const USER_AUTH_OAUTH_SCOPES = ['SCOPE_NAME'];

// This sample shows how to get space event 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 and SPACE_EVENT_NAME here
    name: 'spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
  };

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

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

await main();

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

  • SCOPE_NAME: היקף הרשאה שמבוסס על סוג האירוע. לדוגמה, אם מקבלים אירוע במרחב לגבי חברות חדשה, צריך להשתמש בהיקף chat.memberships.readonly, בפורמט https://www.googleapis.com/auth/chat.memberships.readonly. אפשר לקבל את סוג האירוע מהשיטה ListSpaceEvents(). במאמר איך מציגים רשימה של אירועים במרחב מוסבר איך משתמשים בשיטה הזו.
  • SPACE_NAME: המזהה מname של המרחב. אפשר לקבל את המזהה על ידי הפעלת השיטה ListSpaces() או מכתובת ה-URL של המרחב.
  • SPACE_EVENT_NAME: המזהה מתוך name של אירוע במרחב. אפשר לאתר אותו באמצעות method‏ ListSpaceEvents(). במאמר איך מציגים רשימה של אירועים במרחב מוסבר איך משתמשים בשיטה הזו.

ה-API של Chat מחזיר מופע של SpaceEvent עם פרטים על האירוע.

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

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

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

Python

בדוגמת הקוד הזו ב-Python נעשה שימוש ב-Chat REST API.

  1. בספריית העבודה, יוצרים קובץ בשם chat_spaceevents_get_app.py.
  2. מוסיפים את הקוד הבא אל chat_spaceevents_get_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().get(
    
            # The space to get event details 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.
            name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
    
        ).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 של המרחב.
    • SPACE_EVENT_NAME: המזהה מתוך name של אירוע במרחב. אפשר לאתר אותו באמצעות method‏ ListSpaceEvents(). במאמר איך מציגים רשימה של אירועים במרחב מוסבר איך משתמשים בשיטה הזו.
  4. בספריית העבודה, מבצעים build ומריצים את הדוגמה:

    python3 chat_spaceevents_get_app.py

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