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

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

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

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

Apps Script

  • פרויקט Apps Script:
    • להשתמש בפרויקט Google Cloud שלכם במקום בפרויקט ברירת המחדל שנוצר אוטומטית על ידי Apps Script.
    • לכל היקפי ההרשאות שהוספתם כדי להגדיר את מסך ההסכמה ל-OAuth, אתם צריכים להוסיף את היקפי ההרשאות גם לקובץ appsscript.json בפרויקט Apps Script. לדוגמה, אם ציינתם את ההיקף chat.messages, צריך להוסיף את הפרטים הבאים:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • מפעילים את השירות המתקדם 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('credentials.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 ונתתם לקובץ את השם credentials.json. בדוגמת הקוד נעשה שימוש בקובץ ה-JSON הזה כדי לבצע אימות ב-Google Workspace ולקבל פרטי כניסה של משתמשים. הוראות מפורטות זמינות במאמר בנושא יצירת פרטי כניסה של מזהה לקוח OAuth.

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

    python3 list_subscriptions.py

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