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

בדף הזה מוסבר איך להפעיל מחדש מינוי Google Workspace שהושעה. כדי לעשות זאת, צריך לפתור שגיאות או לפתור בעיות, ואז להתקשר לשיטת subscriptions.reactivate.

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

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

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

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

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
      

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

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

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

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

USER_SCOPE_REVOKED

המשתמש שנתן את ההרשאה ביטל את ההרשאה לאחת או יותר מהיקפי ה-OAuth שנדרשים למינוי. מקבלים טוקן גישה אחר. פרטים נוספים זמינים במאמר בנושא קבלת אסימון גישה משרת ההרשאות של Google.

RESOURCE_DELETED

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

USER_AUTHORIZATION_FAILURE

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

ENDPOINT_PERMISSION_DENIED

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

חשבונות שירות:
  • אירועים ב-Google Chat: chat-api-push@system.gserviceaccount.com
  • אירועים ב-Google Drive: drive-api-event-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('credentials.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 ונתתם לקובץ את השם credentials.json. בדוגמת הקוד נעשה שימוש בקובץ ה-JSON הזה כדי לבצע אימות ב-Google Workspace ולקבל פרטי כניסה של משתמשים. הוראות מפורטות זמינות במאמר בנושא יצירת פרטי כניסה של מזהה לקוח OAuth.

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

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

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

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

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

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

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