এই পৃষ্ঠায় ত্রুটি সমাধান বা ট্রাবলশুটিং করে এবং subscriptions.reactivate মেথডটি কল করার মাধ্যমে একটি সাসপেন্ড হওয়া Google Workspace সাবস্ক্রিপশন কীভাবে পুনরায় সক্রিয় করতে হয়, তা ব্যাখ্যা করা হয়েছে।
যখন কোনো ত্রুটির কারণে সাবস্ক্রিপশনটি ইভেন্ট গ্রহণ করতে পারে না, তখন গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন স্থগিত করা হয়। উদাহরণস্বরূপ, যখন কোনো সাবস্ক্রিপশনের নির্দিষ্ট রিসোর্স বা নোটিফিকেশন এন্ডপয়েন্ট খুঁজে পাওয়া যায় না, তখন তা স্থগিত করা হয়। সাবস্ক্রিপশনের যেকোনো ত্রুটি সমাধান করার পর, আপনি পুনরায় ইভেন্ট গ্রহণ শুরু করার জন্য সাবস্ক্রিপশনটি রিঅ্যাক্টিভেট করতে পারেন।
নিম্নলিখিত উপায়ে একটি স্থগিত সাবস্ক্রিপশন সম্পর্কে জানুন:
- আপনার অ্যাপ সাসপেনশন সংক্রান্ত একটি লাইফসাইকেল ইভেন্ট পায়। যদি আপনার সাবস্ক্রিপশনটি এর এন্ডপয়েন্টের কোনো ত্রুটির কারণে সাসপেন্ড করা হয়, তাহলে আপনি কোনো লাইফসাইকেল ইভেন্ট নাও পেতে পারেন।
- সাবস্ক্রিপশনের
stateফিল্ডটিSUSPENDEDএ সেট করা আছে কিনা তা দেখতেsubscriptions.getঅথবাsubscriptions.listমেথডগুলো ব্যবহার করুন। - আপনার নোটিফিকেশন এন্ডপয়েন্টে একটি ডেলিভারি ব্যর্থতা সম্পর্কে আপনাকে জানানো হয়েছে। Google Cloud Pub/Sub টপিকে ডেলিভারি ব্যর্থতা পর্যবেক্ষণ সম্পর্কে জানতে, “বার্তার ব্যর্থতা পরিচালনা” দেখুন।
পুনরায় সক্রিয় করা সাবস্ক্রিপশনগুলির মেয়াদ আগের মতোই থাকে। কোনো সাবস্ক্রিপশনের মেয়াদ বাড়াতে, ‘Google Workspace সাবস্ক্রিপশন আপডেট বা নবায়ন করুন’ দেখুন।
অ্যাপস স্ক্রিপ্ট
- একটি গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন। এটি তৈরি করতে, ‘সাবস্ক্রিপশন তৈরি করুন’ দেখুন।
- একটি অ্যাপস স্ক্রিপ্ট প্রকল্প:
- অ্যাপস স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে তৈরি ডিফল্ট প্রজেক্টের পরিবর্তে আপনার গুগল ক্লাউড প্রজেক্ট ব্যবহার করুন।
- OAuth সম্মতি স্ক্রিন কনফিগার করার জন্য আপনি যে সমস্ত স্কোপ যোগ করেছেন, সেই স্কোপগুলি আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টের
appsscript.jsonফাইলে অবশ্যই যোগ করতে হবে। উদাহরণস্বরূপ, যদি আপনিchat.messagesস্কোপটি নির্দিষ্ট করে থাকেন, তাহলে নিম্নলিখিতটি যোগ করুন: Google Workspace Eventsঅ্যাডভান্সড সার্ভিসটি সক্রিয় করুন ।
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
সাবস্ক্রিপশনের প্রতিটি ইভেন্ট টাইপের জন্য প্রমাণীকরণ এবং একটি উপযুক্ত অনুমোদন পরিধি প্রয়োজন:
- ব্যবহারকারী প্রমাণীকরণের জন্য এক বা একাধিক স্কোপ প্রয়োজন, যেগুলো সাবস্ক্রিপশনের ইভেন্ট টাইপগুলোর মধ্যে অন্তত একটিকে সমর্থন করে। একটি স্কোপ শনাক্ত করতে, ‘ইভেন্ট টাইপ অনুযায়ী স্কোপ’ দেখুন।
- একটি চ্যাট অ্যাপ হিসেবে কোনো চ্যাট ইভেন্টে সাবস্ক্রাইব করার জন্য, এককালীন অ্যাডমিনিস্ট্রেটর অনুমোদনের মাধ্যমে অ্যাপ প্রমাণীকরণ প্রয়োজন।
পাইথন
- পাইথন ৩.৬ বা তার বেশি
- পিপ প্যাকেজ ম্যানেজমেন্ট টুল
- পাইথনের জন্য সর্বশেষ গুগল ক্লায়েন্ট লাইব্রেরি। এগুলো ইনস্টল বা আপডেট করতে, আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- একটি গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন। এটি তৈরি করতে, ‘সাবস্ক্রিপশন তৈরি করুন’ দেখুন।
সাবস্ক্রিপশনের প্রতিটি ইভেন্ট টাইপের জন্য প্রমাণীকরণ এবং একটি উপযুক্ত অনুমোদন পরিধি প্রয়োজন:
- ব্যবহারকারী প্রমাণীকরণের জন্য এক বা একাধিক স্কোপ প্রয়োজন, যেগুলো সাবস্ক্রিপশনের ইভেন্ট টাইপগুলোর মধ্যে অন্তত একটিকে সমর্থন করে। একটি স্কোপ শনাক্ত করতে, ‘ইভেন্ট টাইপ অনুযায়ী স্কোপ’ দেখুন।
- একটি চ্যাট অ্যাপ হিসেবে কোনো চ্যাট ইভেন্টে সাবস্ক্রাইব করার জন্য, এককালীন অ্যাডমিনিস্ট্রেটর অনুমোদনের মাধ্যমে অ্যাপ প্রমাণীকরণ প্রয়োজন।
ত্রুটি শনাক্ত করুন এবং সমাধান করুন
কোনো সাবস্ক্রিপশনের ত্রুটি শনাক্ত করতে, সাবস্ক্রিপশনটির ' suspensionReason ফিল্ডটি পর্যালোচনা করুন। সাসপেনশন সম্পর্কিত কোনো লাইফসাইকেল ইভেন্ট পেলে, অথবা সাবস্ক্রিপশনটির সমস্ত ফিল্ড পর্যালোচনা করার জন্য subscriptions.get মেথডটি ব্যবহার করে আপনি এই ফিল্ডটি খুঁজে পেতে পারেন।
নিম্নলিখিত সারণীতে একটি সাবস্ক্রিপশনের জন্য সম্ভাব্য ত্রুটিগুলি এবং, সম্ভব হলে, কীভাবে সেগুলি সমাধান করা যায় তা দেখানো হয়েছে। আপনি যদি ত্রুটিটি সমাধান করতে না পারেন, তবে আপনি সাবস্ক্রিপশনটি মুছে ফেলতে পারেন, অথবা এটির মেয়াদ শেষ হওয়া পর্যন্ত অপেক্ষা করতে পারেন। গুগল ওয়ার্কস্পেস ইভেন্টস এপিআই মেয়াদোত্তীর্ণ সাবস্ক্রিপশনগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলে।
| ত্রুটি | বর্ণনা | সমাধানের উপায় |
|---|---|---|
| অনুমোদনকারী ব্যবহারকারী সাবস্ক্রিপশনের জন্য প্রয়োজনীয় এক বা একাধিক OAuth স্কোপের অনুমোদন প্রত্যাহার করেছেন। | Obtain another access token. For details, see Obtain an access token from the Google Authorization Server . |
| সাবস্ক্রিপশনের জন্য নির্ধারিত রিসোর্সটি মুছে ফেলা হয়েছে। | যদি রিসোর্সটি পুনরুদ্ধার করা হয়, তাহলে reactivate মেথডটি কল করুন। অন্যথায়, কোনো পদক্ষেপের প্রয়োজন নেই, কারণ এর মূল টার্গেট রিসোর্স ছাড়া আপনি কোনো সাবস্ক্রিপশন পুনরায় সক্রিয় করতে পারবেন না। |
| অনুমোদনকারী ব্যবহারকারীর সাবস্ক্রিপশনের জন্য রিসোর্সটিতে আর অ্যাক্সেস নেই। | কোনো পদক্ষেপের প্রয়োজন নেই। আপনি সাবস্ক্রিপশনটি পুনরায় সক্রিয় করতে পারবেন না, কারণ যে ব্যবহারকারী এটি অনুমোদন করেছেন, তিনি নির্দিষ্ট রিসোর্সটিতে অ্যাক্সেস করতে পারছেন না। |
| গুগল ওয়ার্কস্পেস অ্যাপ্লিকেশনটির আপনার নোটিফিকেশন এন্ডপয়েন্টে ইভেন্ট সরবরাহ করার অ্যাক্সেস নেই। | যে গুগল ওয়ার্কস্পেস অ্যাপ্লিকেশনটি ইভেন্ট সরবরাহ করে, তার সার্ভিস অ্যাকাউন্টে অ্যাক্সেস মঞ্জুর করুন। পরিষেবা অ্যাকাউন্ট:
পাব/সাব টপিকের জন্য, সার্ভিস অ্যাকাউন্টটিকে পাব/সাব পাবলিশার ( roles/pubsub.publisher) রোলটি প্রদান করুন। |
| নোটিফিকেশন এন্ডপয়েন্টটি বিদ্যমান নেই অথবা খুঁজে পাওয়া যাচ্ছে না। | Check that the endpoint is still active and working. To troubleshoot Pub/Sub topics, see the Troubleshooting documentation . |
| অপর্যাপ্ত কোটা অথবা রেট লিমিটিং-এ পৌঁছানোর কারণে নোটিফিকেশন এন্ডপয়েন্টটি ইভেন্ট গ্রহণ করতে ব্যর্থ হয়েছে। | কোটা বৃদ্ধির জন্য অনুরোধ করুন। |
| ডোমেইন প্রশাসক চ্যাট অ্যাপটির জন্য এক বা একাধিক OAuth স্কোপের অনুমোদন প্রত্যাহার করেছেন। | প্রশাসকের অনুমোদন গ্রহণ করুন। |
| যে চ্যাট অ্যাপটি সাবস্ক্রিপশনটি তৈরির অনুমোদন দিয়েছিল, সেটির এখন আর সাবস্ক্রিপশনটির লক্ষ্য রিসোর্সে অ্যাক্সেস নেই। | লক্ষ্য রিসোর্সটিতে পুনরায় অ্যাক্সেস লাভ করুন। উদাহরণস্বরূপ, যদি লক্ষ্য রিসোর্সটি একটি চ্যাট স্পেস হয়, তাহলে চ্যাট অ্যাপটির সেই স্পেসের সদস্যপদ প্রয়োজন হতে পারে। |
একটি সাবস্ক্রিপশন পুনরায় সক্রিয় করুন
যে ত্রুটির কারণে আপনার সাবস্ক্রিপশনটি স্থগিত হয়েছিল, সেটি সমাধান করার পর, সাবস্ক্রিপশনটিকে পুনরায় ইভেন্ট গ্রহণ করার সুযোগ দিতে reactivate মেথডটি ব্যবহার করুন। এই মেথডটি যাচাই করে দেখে যে সমস্ত ত্রুটি সমাধান হয়েছে কিনা এবং আপনার সাবস্ক্রিপশনের state ফিল্ডটিকে SUSPENDED থেকে ACTIVE এ পরিবর্তন করে দেয়।
গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন পুনরায় সক্রিয় করতে:
অ্যাপস স্ক্রিপ্ট
আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে,
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); }নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
Google Workspace সাবস্ক্রিপশনটি পুনরায় সক্রিয় করতে, আপনার Apps Script প্রজেক্টে
reactivateSubscriptionফাংশনটি চালান।
পাইথন
আপনার ওয়ার্কিং ডিরেক্টরিতে
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: সাবস্ক্রিপশনের আইডি। আইডিটি পেতে, আপনি নিম্নলিখিত যেকোনো একটি ব্যবহার করতে পারেন:
-
In your working directory, make sure you've stored your OAuth client ID credentials and named the file
credentials.json. The code sample uses this JSON file to authenticate with Google Workspace and get user credentials. For instructions, see Create OAuth client ID credentials .Google Workspace সাবস্ক্রিপশনটি পুনরায় সক্রিয় করতে, আপনার টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
python3 reactivate_subscription.py
Subscription resource.অনুরোধটি ব্যর্থ হলে, অতিরিক্ত ত্রুটিগুলো সমাধান করতে নিম্নলিখিত বিভাগটি দেখুন।
একটি সাবস্ক্রিপশন চ্যাট অ্যাপ হিসাবে পুনরায় সক্রিয় করুন
আপনি একজন ব্যবহারকারী হিসেবে নয়, বরং একটি চ্যাট অ্যাপ হিসেবে চ্যাট ইভেন্টের সাবস্ক্রিপশন পুনরায় সক্রিয় করতে পারেন। প্রক্রিয়াটি একই রকম, তবে কিছু ব্যতিক্রম রয়েছে:
ব্যবহারকারী প্রমাণীকরণের পরিবর্তে, এককালীন প্রশাসক অনুমোদনের মাধ্যমে একটি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করুন ।
চ্যাট অ্যাপকে চ্যাট ইভেন্টগুলিতে সাবস্ক্রাইব করার অনুমতি দেয় এমন অনুমোদন স্কোপগুলি নির্দিষ্ট করুন। এই অনুমোদন স্কোপগুলি সর্বদা
chat.appদিয়ে শুরু হয় এবং নিম্নলিখিতগুলি অন্তর্ভুক্ত করে:-
https://www.googleapis.com/auth/chat.app.memberships: চ্যাট স্পেসের মেম্বার ইভেন্টগুলোতে সাবস্ক্রাইব করুন। -
https://www.googleapis.com/auth/chat.app.memberships.readonly: চ্যাট স্পেসের মেম্বার ইভেন্টগুলোতে সাবস্ক্রাইব করুন। -
https://www.googleapis.com/auth/chat.app.messages.readonly: চ্যাট স্পেসের মেসেজ এবং রিঅ্যাকশন ইভেন্টগুলিতে সাবস্ক্রাইব করুন। -
https://www.googleapis.com/auth/chat.app.spaces: চ্যাট স্পেস ইভেন্টগুলিতে সাবস্ক্রাইব করুন। -
https://www.googleapis.com/auth/chat.app.spaces.readonly: চ্যাট স্পেস ইভেন্টগুলিতে সাবস্ক্রাইব করুন।
-
এমন একটি স্ক্রিপ্ট লিখুন যা গুগল ওয়ার্কস্পেস ইভেন্টস এপিআই (Google Workspace Events API)-কে কল করে।
নিম্নলিখিত কোড নমুনাটি একটি চ্যাট অ্যাপের গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন পুনরায় সক্রিয় করে:
পাইথন
"""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,
)
NAME = 'subscriptions/SUBSCRIPTION_ID'
response = service.subscriptions().reactivate(name=NAME).execute()
print(response)
নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
SCOPES: সেইসব অথরাইজেশন স্কোপ নির্দিষ্ট করুন যা চ্যাট অ্যাপকে চ্যাট ইভেন্টগুলিতে সাবস্ক্রাইব করার অনুমতি দেয়। এই অথরাইজেশন স্কোপগুলি সর্বদাchat.appদিয়ে শুরু হয় এবং নিম্নলিখিতগুলি অন্তর্ভুক্ত করে:-
https://www.googleapis.com/auth/chat.app.memberships: চ্যাট স্পেসের মেম্বার ইভেন্টগুলোতে সাবস্ক্রাইব করুন। -
https://www.googleapis.com/auth/chat.app.memberships.readonly: চ্যাট স্পেসের মেম্বার ইভেন্টগুলোতে সাবস্ক্রাইব করুন। -
https://www.googleapis.com/auth/chat.app.messages.readonly: চ্যাট স্পেসের মেসেজ এবং রিঅ্যাকশন ইভেন্টগুলিতে সাবস্ক্রাইব করুন। -
https://www.googleapis.com/auth/chat.app.spaces: চ্যাট স্পেস ইভেন্টগুলিতে সাবস্ক্রাইব করুন। -
https://www.googleapis.com/auth/chat.app.spaces.readonly: চ্যাট স্পেস ইভেন্টগুলিতে সাবস্ক্রাইব করুন।
-
SUBSCRIPTION_ID: সাবস্ক্রিপশনের আইডি। আইডিটি পেতে, আপনি নিম্নলিখিত যেকোনো একটি ব্যবহার করতে পারেন:
একাধিক ত্রুটি সমাধান করুন
যদি আপনি সাবস্ক্রিপশন স্থগিতকারী ত্রুটিটি সমাধান করে থাকেন এবং reactivate পদ্ধতিটি ব্যর্থ হয়, তাহলে আপনার সাবস্ক্রিপশন স্থগিত হওয়ার পরে অন্য কোনো ত্রুটি ঘটে থাকতে পারে।
অতিরিক্ত ত্রুটি শনাক্ত করতে, ব্যর্থ অনুরোধটির আউটপুট পর্যালোচনা করুন। আউটপুটটিতে এখনও বিদ্যমান যেকোনো ত্রুটি থাকে।
যখন আপনার সাবস্ক্রিপশনে একাধিক ত্রুটি থাকে, তখন suspensionReason ফিল্ডের মান হিসেবে সর্বদা সেই মূল ত্রুটিটি ব্যবহৃত হয়, যার কারণে আপনার সাবস্ক্রিপশনটি স্থগিত করা হয়েছিল।