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

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

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

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

  • האפליקציה שלכם תקבל אירוע במחזור החיים לגבי ההשעיה. אם המינוי שלכם הושעה בגלל שגיאה בנקודת הקצה שלו, יכול להיות שלא תקבלו אירוע מחזור חיים.
  • משתמשים ב-method ‏subscriptions.get() או ב-method ‏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 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 Meet, חשבון השירות הוא meet-api-event-push@system.gserviceaccount.com.

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

ENDPOINT_NOT_FOUND

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

ENDPOINT_RESOURCE_EXHAUSTED

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

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

אחרי שתטפלו בשגיאה שגרמה להשעיית המינוי, תוכלו להשתמש ב-method‏ 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 Events API מחזיר פעולה ממושכת שמכילה את המופע של המשאב Subscription.

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

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

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

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

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