সমস্যা সমাধান করুন এবং Google Workspace সাবস্ক্রিপশন আবার চালু করুন

এই পৃষ্ঠাটি ব্যাখ্যা করে যে কীভাবে একটি সাসপেন্ড করা Google Workspace সাবস্ক্রিপশন আবার চালু করতে হয় বা সমস্যার সমাধান করে এবং subscriptions.reactivate() পদ্ধতিতে কল করে।

Google Workspace সাবস্ক্রিপশন সাসপেন্ড করা হয় যখনই কোনও ত্রুটি সাবস্ক্রিপশনকে ইভেন্ট পেতে বাধা দেয়। উদাহরণস্বরূপ, একটি সাবস্ক্রিপশন স্থগিত করা হয় যখন এর লক্ষ্য সংস্থান বা বিজ্ঞপ্তির শেষ পয়েন্ট পাওয়া যায় না। আপনি সাবস্ক্রিপশনের সাথে কোনও ত্রুটি সমাধান করার পরে, আপনি আবার ইভেন্টগুলি পেতে শুরু করতে সদস্যতাটি পুনরায় সক্রিয় করতে পারেন৷

আপনি নিম্নলিখিত উপায়ে একটি স্থগিত সদস্যতা সম্পর্কে জানতে পারেন:

  • আপনার অ্যাপ সাসপেনশন সম্পর্কে একটি জীবনচক্র ইভেন্ট পায়। যদি আপনার সাবস্ক্রিপশন এর এন্ডপয়েন্টের সাথে একটি ত্রুটির কারণে স্থগিত করা হয়, তাহলে আপনি একটি জীবনচক্র ইভেন্ট নাও পেতে পারেন।
  • আপনি subscriptions.get() বা subscriptions.list() পদ্ধতি ব্যবহার করে দেখতে চান যে সাবস্ক্রিপশনের state ফিল্ডটি SUSPENDED এ সেট করা আছে কিনা।
  • আপনার নোটিফিকেশন এন্ডপয়েন্টে ডেলিভারি ব্যর্থতার বিষয়ে আপনাকে জানানো হয়েছে। Google ক্লাউড পাব/সাব বিষয়গুলিতে বিতরণ ব্যর্থতা নিরীক্ষণ সম্পর্কে জানতে, হ্যান্ডেল বার্তা ব্যর্থতাগুলি দেখুন।

পুনরায় সক্রিয় সদস্যতা মূল মেয়াদ শেষ হওয়ার তারিখ বজায় রাখে। সাবস্ক্রিপশনের মেয়াদ বাড়ানোর জন্য, সাবস্ক্রিপশন আপডেট বা রিনিউ দেখুন।

অ্যাপস স্ক্রিপ্ট

  • একটি Apps স্ক্রিপ্ট প্রকল্প:
    • অ্যাপস স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে তৈরি ডিফল্টের পরিবর্তে আপনার Google ক্লাউড প্রকল্প ব্যবহার করুন।
    • OAuth সম্মতি স্ক্রীন কনফিগার করার জন্য আপনি যেকোন স্কোপ যোগ করেছেন, আপনাকে অবশ্যই আপনার Apps Script প্রোজেক্টের appsscript.json ফাইলে স্কোপ যোগ করতে হবে। যেমন:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Google Workspace Events উন্নত পরিষেবা চালু করুন

পাইথন

  • পাইথন 3.6 বা তার বেশি
  • পাইপ প্যাকেজ ম্যানেজমেন্ট টুল
  • পাইথনের জন্য সর্বশেষ Google ক্লায়েন্ট লাইব্রেরি। এগুলি ইনস্টল বা আপডেট করতে, আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:
      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-api-push@system.gserviceaccount.com । Google Meet ইভেন্টের জন্য, পরিষেবা অ্যাকাউন্ট হল meet-api-event-push@system.gserviceaccount.com

পাব/সাব বিষয়ের জন্য, পরিষেবা অ্যাকাউন্টে পাব/সাব প্রকাশকের ভূমিকা ( roles/pubsub.publisher) মঞ্জুর করুন।

ENDPOINT_NOT_FOUND

বিজ্ঞপ্তির শেষ বিন্দু বিদ্যমান নেই বা খুঁজে পাওয়া যাচ্ছে না। শেষ পয়েন্ট এখনও সক্রিয় এবং কাজ করছে কিনা পরীক্ষা করুন। পাব/সাব বিষয়গুলির সমস্যা সমাধানের জন্য, ট্রাবলশুটিং ডকুমেন্টেশন দেখুন।

ENDPOINT_RESOURCE_EXHAUSTED

অপর্যাপ্ত কোটা বা পৌঁছানোর হার সীমিত হওয়ার কারণে বিজ্ঞপ্তির শেষ পয়েন্টটি ইভেন্টগুলি পেতে ব্যর্থ হয়েছে৷ কোটা বৃদ্ধির জন্য অনুরোধ করুন।

একটি সদস্যতা পুনরায় সক্রিয় করুন

আপনি আপনার সাবস্ক্রিপশন স্থগিত করার ত্রুটিটি সমাধান করার পরে, আপনি সাবস্ক্রিপশনকে আবার ইভেন্টগুলি পেতে দেওয়ার জন্য reactivate() পদ্ধতি ব্যবহার করতে পারেন। পদ্ধতিটি পরীক্ষা করে যে সমস্ত ত্রুটিগুলি সমাধান করা হয়েছে এবং আপনার সাবস্ক্রিপশনের state ক্ষেত্রটিকে SUSPENDED থেকে ACTIVE তে পরিবর্তন করে।

Google Workspace সাবস্ক্রিপশন আবার চালু করতে:

অ্যাপস স্ক্রিপ্ট

  1. আপনার Apps স্ক্রিপ্ট প্রকল্পে, 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 ক্ষেত্রে প্রতিনিধিত্ব করা সম্পদ নামের ID। উদাহরণস্বরূপ, যদি সম্পদের নাম হয় subscriptions/subscription-123 , subscription-123 ব্যবহার করুন।
  2. Google Workspace সাবস্ক্রিপশন আবার চালু করতে, আপনার Apps Script প্রোজেক্টে reactivateSubscription ফাংশনটি চালান।

পাইথন

  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 ক্ষেত্রে প্রতিনিধিত্ব করা সম্পদ নামের ID। উদাহরণস্বরূপ, যদি সম্পদের নাম হয় 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 ক্ষেত্রের মানটি সর্বদা মূল ত্রুটি ব্যবহার করে যা আপনার সাবস্ক্রিপশন স্থগিত করেছে।