הצגת מינויים ל-Google Workspace

בדף זה מוסבר איך מציגים את המינויים ל-Google Workspace באמצעות השיטה subscriptions.list().

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

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

Apps Script

  • פרויקט Apps Script:
    • יש להשתמש בפרויקט ב-Google Cloud במקום בפרויקט ברירת המחדל שנוצר באופן אוטומטי על ידי Apps Script.
    • להיקפים שהוספתם כדי להגדיר את מסך ההסכמה ל-OAuth, צריך להוסיף את ההיקפים גם לקובץ appsscript.json בפרויקט Apps Script. למשל:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • הפעל את השירות המתקדם Google Workspace Events.

Python

  • Python 3.6 ואילך
  • הכלי לניהול חבילות pip
  • ספריות הלקוח העדכניות של Google ל-Python. כדי להתקין או לעדכן אותן, מריצים את הפקודה הבאה בממשק שורת הפקודה:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • מינוי ל-Google Workspace. במאמר יצירת מינוי מוסבר איך יוצרים מינוי.

  • נדרש אימות:

    • לאימות משתמשים, נדרש היקף שתומך לפחות באחד מסוגי האירועים במינוי. כדי לזהות היקף, כדאי לעיין במאמר היקפים לפי סוג האירוע.
    • לאימות אפליקציות, נדרש ההיקף chat.bot (רק באפליקציות Google Chat).

הצגת רשימה של מינויים שאושרו על ידי משתמש

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

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

כדי לרשום מינויים לסוג אירוע ולמשאב יעד מסוימים:

Apps Script

  1. בפרויקט Apps Script, יוצרים קובץ סקריפט חדש בשם listSubscriptions ומוסיפים את הקוד הבא:

    function listSubscriptions() {
      // Filter for event type (required).
      const eventType = 'EVENT_TYPE';
    
      // Filter for target resource (optional).
      const targetResource = 'TARGET_RESOURCE';
    
      const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"`
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.list({ filter });
      console.log(response);
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • EVENT_TYPE: סוג אירוע שמפורמט בהתאם למפרט של CloudEvents. לדוגמה, כדי לסנן את רשימת המינויים שמקבלים אירועים על חברויות חדשות במרחב משותף ב-Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: משאב יעד, שמעוצב כשם המלא של המשאב. לדוגמה, כדי לסנן לפי מינויים במרחב משותף ב-Google Chat, אפשר להשתמש בשדה //chat.googleapis.com/spaces/SPACE_ID, כאשר spaces/SPACE_ID מייצג את השדה name של המשאב Space.
  2. כדי להציג את רשימת המינויים, מריצים את הפונקציה listSubscriptions בפרויקט Apps Script.

Python

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

    """List subscriptions."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['SCOPE']
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    # Filter for event type (required).
    EVENT_TYPE = 'EVENT_TYPE'
    
    # Filter for target resource (optional).
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"'
    response = service.subscriptions().list(filter=FILTER).execute()
    print(response)
    

    מחליפים את מה שכתוב בשדות הבאים:

    • SCOPE: היקף הרשאות OAuth שתומך לפחות בסוג אירוע אחד מהמינוי. לדוגמה, אם המינוי שלכם מקבל אירועים מרחב משותף מעודכן ב-Chat, https://www.googleapis.com/auth/chat.spaces.readonly.
    • EVENT_TYPE: סוג אירוע שמפורמט בהתאם למפרט של CloudEvents. לדוגמה, כדי לסנן את רשימת המינויים שמקבלים אירועים על חברויות חדשות במרחב משותף ב-Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: משאב יעד, שמעוצב כשם המלא של המשאב. לדוגמה, כדי לסנן לפי מינויים במרחב משותף ב-Google Chat, אפשר להשתמש בשדה //chat.googleapis.com/spaces/SPACE_ID, כאשר spaces/SPACE_ID מייצג את השדה name של המשאב Space.
  2. בספריית העבודה, חשוב לוודא שאחסנתם את פרטי הכניסה של מזהה הלקוח ב-OAuth ואת השם של הקובץ: client_secrets.json. בדוגמת הקוד הזו, קובץ ה-JSON משמש לאימות מול Google Workspace ולקבל את פרטי הכניסה של המשתמש. להוראות, תוכלו לקרוא את המאמר יצירת פרטי כניסה של מזהה לקוח ב-OAuth.

  3. כדי להציג את המינויים, מריצים את הפקודה הבאה במסוף:

    python3 list_subscriptions.py
    

Google Workspace Event API מחזיר מערך עימוד של אובייקטים מסוג Subscription שתואמים למסנן של השאילתה.