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

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

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

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

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 Events API מחזיר מערך מחולק לדפים של אובייקטים מסוג Subscription שתואמים למסנן של השאילתה.