حلّ الأخطاء وإعادة تفعيل اشتراك Google Workspace

توضّح هذه الصفحة كيفية إعادة تفعيل اشتراك معلّق في Google Workspace من خلال حلّ الأخطاء أو تحديدها وحلّها واستدعاء الأسلوب subscriptions.reactivate().

يتم تعليق اشتراكات Google Workspace عندما يمنع خطأ الاشتراك من تلقّي الأحداث. على سبيل المثال، يتم تعليق الاشتراك عندما يتعذّر العثور على المورد المستهدَف أو نقطة نهاية الإشعار. بعد حلّ أي أخطاء في الاشتراك، يمكنك إعادة تفعيله لبدء تلقّي الأحداث مرة أخرى.

يمكنك الاطّلاع على معلومات حول الاشتراك المعلّق بالطُرق التالية:

  • يتلقّى تطبيقك حدثًا في مراحل النشاط بشأن التعليق. إذا تم تعليق اشتراكك بسبب خطأ في نقطة النهاية، قد لا تتلقّى حدثًا في رحلة المستخدِم.
  • يمكنك استخدام الطريقتَين subscriptions.get() أو subscriptions.list() لمعرفة ما إذا تم ضبط حقل state للاشتراك على SUSPENDED.
  • يتم إعلامك بتعذُّر تسليم الإشعار إلى نقطة نهاية الإشعار. للاطّلاع على معلومات عن مراقبة حالات تعذُّر التسليم إلى مواضيع Google Cloud Pub/Sub، يُرجى الاطّلاع على مقالة معالجة حالات تعذُّر إرسال الرسائل.

تحافظ الاشتراكات التي تمت إعادة تفعيلها على تاريخ انتهاء الصلاحية الأصلي. لتمديد مهلة انتهاء صلاحية اشتراك، يُرجى الاطّلاع على مقالة تعديل اشتراك أو تجديده.

برمجة تطبيقات

  • مشروع "برمجة تطبيقات Google":
    • استخدِم مشروعك على Google Cloud بدلاً من المشروع التلقائي الذي أنشأته برمجة التطبيقات تلقائيًا.
    • بالنسبة إلى أي نطاقات أضفتها لضبط شاشة طلب الموافقة على OAuth، عليك أيضًا إضافة نطاقات إلى ملف appsscript.json في مشروعك على Apps Script. على سبيل المثال:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • فعِّل الخدمة المتقدّمة Google Workspace Events.

Python

  • الإصدار 3.6 من Python أو إصدار أحدث
  • أداة إدارة الحِزم 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

يتم حذف المورد المستهدَف للاشتراك. إذا تم استعادة المورد، استخدِم الطريقة 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، اطّلِع على مستندات تحديد وحلّ المشاكل المتعلّقة بموضوعات 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.

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 دائمًا الخطأ الأصلي الذي أدّى إلى تعليق اشتراكك.