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

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

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

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

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

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

Apps Script

  • מינוי ל-Google Workspace. כדי ליצור מינוי, אפשר לעיין במאמר יצירת מינוי.

  • פרויקט 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

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

APP_SCOPE_REVOKED

האדמין בדומיין ביטל את ההרשאה של היקפי OAuth אחד או יותר לאפליקציית Chat. לקבל אישור מהאדמין.

APP_AUTHORIZATION_FAILURE

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

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

אחרי שפותרים את השגיאה שהובילה להשעיית המינוי, אפשר להשתמש בשיטה 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.

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

הפעלה מחדש של מינוי כאפליקציה ב-Google Chat

אתם יכולים להפעיל מחדש מינוי לאירועים ב-Chat כאפליקציית Chat ולא כמשתמש. התהליך דומה, אבל יש כמה הבדלים:

  1. במקום אימות משתמש, מבצעים אימות כאפליקציית Chat באמצעות אישור חד-פעמי של האדמין.

  2. מציינים היקפי הרשאות שמאפשרים לאפליקציה ל-Chat להירשם לאירועים ב-Chat. היקפי ההרשאות האלה תמיד מתחילים ב-chat.app וכוללים את ההרשאות הבאות:

    • https://www.googleapis.com/auth/chat.app.memberships: הרשמה לאירועים של חברים במרחב ב-Chat.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: הרשמה לאירועים של הודעות ותגובות במרחב ב-Chat.
    • https://www.googleapis.com/auth/chat.app.spaces: הרשמה לאירועים במרחב ב-Chat.

יצירה של מפתח API

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

כדי ליצור את מפתח ה-API, פותחים את פרויקט Google Cloud של האפליקציה ומבצעים את הפעולות הבאות:

  1. במסוף Google Cloud, לוחצים על סמל התפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create credentials > API key.
  3. מפתח ה-API החדש מוצג.
    • לוחצים על סמל ההעתקה כדי להעתיק את מפתח ה-API לשימוש בקוד של האפליקציה. מפתח ה-API מופיע גם בקטע API Keys (מפתחות API) בפרטי הכניסה של הפרויקט.
    • כדי למנוע שימוש לא מורשה, מומלץ להגביל את המקומות שבהם אפשר להשתמש במפתח ה-API ואת ממשקי ה-API שאפשר להשתמש בו עבורם. פרטים נוספים זמינים במאמר בנושא הוספת הגבלות על ממשקי API.

כתיבת סקריפט שקורא ל-Google Workspace Events API

דוגמת הקוד הבאה מפעילה מחדש מינוי ל-Google Workspace של אפליקציית Chat:

Python

  """Reactivate subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = [SCOPES]

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # Call the Workspace Events API using the service endpoint.
  service = build(
      'workspaceevents',
      'v1beta',
      credentials=CREDENTIALS,
      discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
  )

  NAME = 'subscriptions/SUBSCRIPTION_ID'
  response = service.subscriptions().reactivate(name=NAME).execute()
  print(response)

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

  • SCOPES: מציינים היקפי הרשאה שמאפשרים לאפליקציה ל-Chat להירשם לאירועים ב-Chat. היקפי ההרשאות האלה תמיד מתחילים ב-chat.app וכוללים את ההרשאות הבאות:

    • https://www.googleapis.com/auth/chat.app.memberships: הרשמה לאירועים של חברים במרחב ב-Chat.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: הרשמה לאירועים של הודעות ותגובות במרחב ב-Chat.
    • https://www.googleapis.com/auth/chat.app.spaces: הרשמה לאירועים במרחב ב-Chat.
  • API_KEY: מפתח ה-API שיצרתם כדי לבנות את נקודת הקצה של השירות עבור Google Workspace Events API.

  • SUBSCRIPTION_ID: מזהה המינוי. כדי לקבל את המזהה, אפשר להשתמש באחת מהאפשרויות הבאות:

    • הערך של השדה uid.
    • המזהה של שם המשאב שמיוצג בשדה name. לדוגמה, אם שם המשאב הוא subscriptions/subscription-123, משתמשים ב-subscription-123.

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

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

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

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