خطاها را برطرف کنید و اشتراک Google Workspace را دوباره فعال کنید

این صفحه نحوه فعال کردن مجدد اشتراک Google Workspace معلق را با رفع یا عیب‌یابی خطاها و فراخوانی متد subscriptions.reactivate() توضیح می‌دهد.

هر زمان که خطایی مانع از دریافت رویدادهای اشتراک شود، اشتراک‌های Google Workspace به حالت تعلیق در می‌آیند. به عنوان مثال، زمانی که منبع هدف یا نقطه پایانی اعلان آن یافت نشود، اشتراک به حالت تعلیق در می‌آید. پس از رفع هر گونه خطا در اشتراک، می توانید اشتراک را دوباره فعال کنید تا دوباره دریافت رویدادها آغاز شود.

می‌توانید از روش‌های زیر درباره اشتراک معلق مطلع شوید:

  • برنامه شما یک رویداد چرخه حیات در مورد تعلیق دریافت می کند. اگر اشتراک شما به دلیل خطایی در نقطه پایانی آن به حالت تعلیق درآمده است، ممکن است رویداد چرخه حیات را دریافت نکنید.
  • شما از متدهای subscriptions.get() یا subscriptions.list() استفاده می کنید تا ببینید آیا فیلد state اشتراک روی SUSPENDED تنظیم شده است یا خیر.
  • در مورد عدم تحویل به نقطه پایانی اعلان به شما اطلاع داده شده است. برای آشنایی با نظارت بر خطاهای تحویل به موضوعات Google Cloud Pub/Sub، به مدیریت خطاهای پیام مراجعه کنید.

اشتراک های دوباره فعال شده تاریخ انقضای اصلی را حفظ می کنند. برای تمدید زمان انقضای یک اشتراک، به به‌روزرسانی یا تمدید اشتراک مراجعه کنید.

اسکریپت برنامه ها

  • پروژه Apps Script:
    • از پروژه Google Cloud خود به جای پروژه پیش‌فرض ایجاد شده توسط Apps Script استفاده کنید.
    • برای هر دامنه‌ای که برای پیکربندی صفحه رضایت OAuth اضافه کرده‌اید، باید دامنه‌ها را نیز به فایل appsscript.json در پروژه Apps Script خود اضافه کنید. مثلا:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • سرویس پیشرفته Google Workspace Events را فعال کنید .

پایتون

  • پایتون 3.6 یا بالاتر
  • ابزار مدیریت بسته پیپ
  • جدیدترین کتابخانه های مشتری گوگل برای پایتون. برای نصب یا به روز رسانی آنها، دستور زیر را در رابط خط فرمان خود اجرا کنید:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      

خطاها را شناسایی و برطرف کنید

برای شناسایی خطای اشتراک، قسمت suspensionReason اشتراک را بررسی کنید. می‌توانید این فیلد را زمانی که رویداد چرخه حیات درباره تعلیق را دریافت می‌کنید، یا با استفاده از روش subscriptions.get() برای بررسی همه فیلدهای اشتراک پیدا کنید.

جدول زیر خطاهای احتمالی یک اشتراک و در صورت امکان نحوه رفع خطاها را نشان می دهد. اگر نمی توانید خطا را برطرف کنید، می توانید اشتراک را حذف کنید یا منتظر بمانید تا منقضی شود. Google Workspace Events 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 Publisher ( roles/pubsub.publisher) را به حساب سرویس اختصاص دهید.

ENDPOINT_NOT_FOUND

نقطه پایانی اعلان وجود ندارد یا یافت نمی شود. بررسی کنید که نقطه پایانی همچنان فعال و کار می کند. برای عیب‌یابی موضوعات Pub/Sub، به مستندات عیب‌یابی مراجعه کنید.

ENDPOINT_RESOURCE_EXHAUSTED

نقطه پایانی اعلان به دلیل سهمیه ناکافی یا رسیدن به محدودیت نرخ، رویدادها را دریافت نکرد. درخواست افزایش سهمیه

اشتراک را دوباره فعال کنید

پس از رفع خطای تعلیق اشتراک، می توانید از متد reactivate() استفاده کنید تا اشتراک دوباره رویدادها را دریافت کند. این روش بررسی می‌کند که همه خطاها برطرف شده باشند و فیلد state اشتراک شما را از SUSPENDED به ACTIVE تغییر می‌دهد.

برای فعال کردن مجدد اشتراک Google Workspace:

اسکریپت برنامه ها

  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 خود اجرا کنید.

پایتون

  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 همیشه از خطای اصلی استفاده می‌کند که اشتراک شما را به حالت تعلیق درآورده است.