תיקון שגיאות והפעלה מחדש של מינוי ל-Google Workspace

בדף זה מוסבר איך להפעיל מחדש מינוי ל-Google Workspace שהושעה על ידי פתרון שגיאות או פתרון בעיות, וקריאות ל-method subscriptions.reactivate().

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

אפשר לקבל מידע על מינוי מושעה בדרכים הבאות:

  • האפליקציה מקבלת אירוע במחזור החיים לגבי ההשעיה. אם המינוי שלכם מושעה עקב שגיאה בנקודת הקצה שלו, יכול להיות שלא תקבלו אירוע במחזור החיים.
  • משתמשים בשיטות subscriptions.get() או subscriptions.list() כדי לראות אם השדה state של המינוי מוגדר ל-SUSPENDED.
  • תקבלו הודעה על כשל במסירה לנקודת הקצה של ההתראות. למידע נוסף על מעקב אחרי כשלים במסירה ל-Google Cloud Pub/Sub, קראו את המאמר טיפול בכשלים בהודעות.

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

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
      

זיהוי ופתרון של שגיאות

כדי לזהות את השגיאה במינוי, בודקים את השדה suspensionReason של המינוי. אפשר למצוא את השדה הזה כשמקבלים אירוע מחזור חיים לגבי ההשעיה, או באמצעות השיטה subscriptions.get() כדי לבדוק את כל השדות של המינוי.

בטבלה הבאה מוצגות שגיאות אפשריות במינויים, ואם אפשר, מוסבר איך לפתור אותן. אם לא הצלחתם לפתור את השגיאה, אפשר למחוק את המינוי או להמתין עד שהתוקף שלו יחלוף. מינויים שפג תוקפם נמחקים אוטומטית מ-Google Workspace Event API.

שגיאה תיאור דרכים לפתרון הבעיה

USER_SCOPE_REVOKED

המשתמש שקיבל הרשאה ביטל את ההרשאה של היקף הרשאות OAuth אחד או יותר שנדרשים למינוי. מקבלים אסימון גישה נוסף. למידע נוסף, ראו קבלת אסימון גישה משרת ההרשאות של Google.

RESOURCE_DELETED

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

USER_AUTHORIZATION_FAILURE

למשתמש שקיבל הרשאה אין יותר גישה למשאב של המינוי. לא נדרשת כל פעולה. אי אפשר להפעיל מחדש את המינוי כי המשתמש שאישר את המינוי לא יכול לגשת למשאב היעד.

ENDPOINT_PERMISSION_DENIED

לאפליקציה של Google Workspace אין גישה לשליחת אירועים לנקודת הקצה של ההתראות. מעניקים גישה לחשבון השירות של אפליקציית Google Workspace שמפעילה אירועים.

לאירועים ב-Google Chat, חשבון השירות הוא chat-api-push@system.gserviceaccount.com. לאירועים ב-Google Meet, חשבון השירות הוא meet-api-event-push@system.gserviceaccount.com.

לנושאי Pub/Sub, מקצים את התפקיד פרסום ב-Pub/Sub (roles/pubsub.publisher) לחשבון השירות).

ENDPOINT_NOT_FOUND

נקודת הקצה של ההתראות לא קיימת או שאי אפשר למצוא אותה. בודקים שנקודת הקצה עדיין פעילה ופועלת. כדי לפתור בעיות בנושאי Pub/Sub, עיינו במסמכי התיעוד לפתרון בעיות.

ENDPOINT_RESOURCE_EXHAUSTED

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

הפעלה מחדש של מינוי

אחרי שפותרים את השגיאה שגרמה להשעיית המינוי, אפשר להשתמש בשיטה reactivate() כדי לאפשר למינוי לקבל אירועים שוב. השיטה בודקת שכל השגיאות נפתרו ומשנה את השדה state במינוי מ-SUSPENDED ל-ACTIVE.

כדי להפעיל מחדש מינוי ל-Google Workspace:

Apps Script

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

    function reactivateSubscription() {
      // The name of the subscription to reactivate.
      const name = 'subscriptions/SUBSCRIPTION_ID';
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.reactivate({}, name);
      console.log(response);
    }
    

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

    • SUBSCRIPTION_ID: מזהה המינוי. כדי לאתר את המזהה, אפשר להשתמש באחת מהאפשרויות הבאות:
      • הערך בשדה uid.
      • המזהה של שם המשאב שמיוצג בשדה name. לדוגמה, אם שם המשאב הוא subscriptions/subscription-123, משתמשים ב-subscription-123.
  2. כדי להפעיל מחדש את המינוי ל-Google Workspace, צריך להריץ את הפונקציה reactivateSubscription בפרויקט Apps Script.

Python

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

    """Reactivate subscription."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = [SCOPES]
    
    # 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,
    )
    
    NAME = 'subscriptions/SUBSCRIPTION_ID'
    response = service.subscriptions().reactivate(name=NAME).execute()
    print(response)
    

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

    • SCOPES: היקף הרשאות OAuth אחד או יותר שתומכים בכל סוג אירוע במינוי. בפורמט של מערך מחרוזות. כדי לציין כמה היקפים, צריך להפריד ביניהם באמצעות פסיקים. לדוגמה, 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.
    • SUBSCRIPTION_ID: מזהה המינוי. כדי לאתר את המזהה, אפשר להשתמש באחת מהאפשרויות הבאות:
      • הערך בשדה uid.
      • המזהה של שם המשאב שמיוצג בשדה name. לדוגמה, אם שם המשאב הוא subscriptions/subscription-123, משתמשים ב-subscription-123.
  2. בספריית העבודה, חשוב לוודא שאחסנתם את פרטי הכניסה של מזהה הלקוח ב-OAuth ואת השם של הקובץ: client_secrets.json. בדוגמת הקוד הזו, קובץ ה-JSON משמש לאימות מול Google Workspace ולקבל את פרטי הכניסה של המשתמש. להוראות, תוכלו לקרוא את המאמר יצירת פרטי כניסה של מזהה לקוח ב-OAuth.

  3. כדי להפעיל מחדש את המינוי ל-Google Workspace, מריצים את הפקודה הבאה במסוף:

    python3 reactivate_subscription.py
    
Google Workspace Event API מחזיר פעולה ממושכת שמכילה את המופע של המשאב Subscription.

אם הבקשה נכשלת, עיינו בקטע הבא כדי לפתור שגיאות נוספות.

פתרון בעיות בכמה שגיאות

אם פתרתם את השגיאה שגרמה להשעיית המינוי אבל השיטה reactivate() נכשלת, יכול להיות שאירעה שגיאה נוספת אחרי שהמינוי שלכם הושעה.

כדי לזהות שגיאות נוספות, יש לבדוק את הפלט של הבקשה שנכשלה. הפלט מכיל את השגיאות שעדיין קיימות.

אם במינוי יש כמה שגיאות, הערך בשדה suspensionReason תמיד ישתמש בשגיאה המקורית שגרמה להשעיית המינוי.