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

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

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

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

  • האפליקציה שלכם תקבל אירוע במחזור החיים לגבי ההשעיה. אם המינוי שלכם הושעה בגלל שגיאה בנקודת הקצה שלו, יכול להיות שלא תקבלו אירוע מחזור חיים.
  • משתמשים ב-methods 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() כדי לבדוק את כל השדות של המינוי.

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

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

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() כדי לאפשר למינוי לקבל שוב אירועים. ה-method בודק שכל השגיאות נפתרו ומשנה את השדה 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 תמיד יהיה השגיאה המקורית שגרמה להשעיית המינוי.