এই পৃষ্ঠায় subscriptions.list() পদ্ধতি ব্যবহার করে কীভাবে গুগল ওয়ার্কস্পেস সাবস্ক্রিপশনগুলোর তালিকা তৈরি করতে হয়, তা ব্যাখ্যা করা হয়েছে।
যখন আপনি ব্যবহারকারী প্রমাণীকরণ সহ এই পদ্ধতিটি কল করেন, তখন পদ্ধতিটি ব্যবহারকারী দ্বারা অনুমোদিত সাবস্ক্রিপশনগুলির একটি তালিকা ফেরত দেয়। যখন আপনি অ্যাপ প্রমাণীকরণ ব্যবহার করেন, তখন পদ্ধতিটি এমন একটি তালিকা ফেরত দিতে পারে যাতে অ্যাপটির যেকোনো সাবস্ক্রিপশন থাকে।
পূর্বশর্ত
অ্যাপস স্ক্রিপ্ট
- একটি গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন। এটি তৈরি করতে, ‘সাবস্ক্রিপশন তৈরি করুন’ দেখুন।
- একটি অ্যাপস স্ক্রিপ্ট প্রকল্প:
- অ্যাপস স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে তৈরি ডিফল্ট প্রজেক্টের পরিবর্তে আপনার গুগল ক্লাউড প্রজেক্ট ব্যবহার করুন।
- OAuth সম্মতি স্ক্রিন কনফিগার করার জন্য আপনি যে সমস্ত স্কোপ যোগ করেছেন, সেই স্কোপগুলি আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টের
appsscript.jsonফাইলে অবশ্যই যোগ করতে হবে। উদাহরণস্বরূপ, যদি আপনিchat.messagesস্কোপটি নির্দিষ্ট করে থাকেন, তাহলে নিম্নলিখিতটি যোগ করুন: Google Workspace Eventsঅ্যাডভান্সড সার্ভিসটি সক্রিয় করুন ।
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
সাবস্ক্রিপশনের প্রতিটি ইভেন্ট টাইপের জন্য প্রমাণীকরণ এবং একটি উপযুক্ত অনুমোদন পরিধি প্রয়োজন:
- ব্যবহারকারী প্রমাণীকরণের জন্য এমন একটি স্কোপ প্রয়োজন যা সাবস্ক্রিপশনের ইভেন্ট টাইপগুলোর মধ্যে অন্তত একটিকে সমর্থন করে। স্কোপ শনাক্ত করতে, ‘ইভেন্ট টাইপ অনুযায়ী স্কোপ’ দেখুন।
- অ্যাপ প্রমাণীকরণের জন্য
chat.botস্কোপ প্রয়োজন (শুধুমাত্র গুগল চ্যাট অ্যাপের ক্ষেত্রে)।
পাইথন
- পাইথন ৩.৬ বা তার বেশি
- পিপ প্যাকেজ ম্যানেজমেন্ট টুল
- পাইথনের জন্য সর্বশেষ গুগল ক্লায়েন্ট লাইব্রেরি। এগুলো ইনস্টল বা আপডেট করতে, আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- একটি গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন। এটি তৈরি করতে, ‘সাবস্ক্রিপশন তৈরি করুন’ দেখুন।
সাবস্ক্রিপশনের প্রতিটি ইভেন্ট টাইপের জন্য প্রমাণীকরণ এবং একটি উপযুক্ত অনুমোদন পরিধি প্রয়োজন:
- ব্যবহারকারী প্রমাণীকরণের জন্য এমন একটি স্কোপ প্রয়োজন যা সাবস্ক্রিপশনের ইভেন্ট টাইপগুলোর মধ্যে অন্তত একটিকে সমর্থন করে। স্কোপ শনাক্ত করতে, ‘ইভেন্ট টাইপ অনুযায়ী স্কোপ’ দেখুন।
- অ্যাপ প্রমাণীকরণের জন্য
chat.botস্কোপ প্রয়োজন (শুধুমাত্র গুগল চ্যাট অ্যাপের ক্ষেত্রে)।
একজন ব্যবহারকারী দ্বারা অনুমোদিত সাবস্ক্রিপশনের তালিকা
সাবস্ক্রিপশনগুলির তালিকা দেখতে, আপনাকে অবশ্যই অন্তত একটি ইভেন্ট টাইপ দিয়ে ফিল্টার করতে হবে। এছাড়াও আপনি এক বা একাধিক টার্গেট রিসোর্স দিয়ে আপনার কোয়েরি ফিল্টার করতে পারেন। সমর্থিত কোয়েরি ফিল্টারগুলি সম্পর্কে জানতে, list() মেথডের ডকুমেন্টেশন দেখুন।
নিম্নলিখিত কোড নমুনাটি ইভেন্টের ধরন এবং টার্গেট রিসোর্স দ্বারা ফিল্টার করা Subscription অবজেক্টের একটি অ্যারে রিটার্ন করে। একজন ব্যবহারকারী হিসাবে প্রমাণীকৃত হলে, এই মেথডটি শুধুমাত্র সেই সাবস্ক্রিপশনগুলির একটি তালিকা রিটার্ন করে, যেগুলি তৈরি করার জন্য ব্যবহারকারী অ্যাপটিকে অনুমোদন দিয়েছেন।
একটি নির্দিষ্ট ইভেন্ট টাইপ এবং টার্গেট রিসোর্সের জন্য সাবস্ক্রিপশন তালিকাভুক্ত করতে:
অ্যাপস স্ক্রিপ্ট
আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে,
listSubscriptionsনামে একটি নতুন স্ক্রিপ্ট ফাইল তৈরি করুন এবং নিম্নলিখিত কোডটি যোগ করুন:function listSubscriptions() { // Filter for event type (required). const eventType = 'EVENT_TYPE'; // Filter for target resource (optional). const targetResource = 'TARGET_RESOURCE'; const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"` // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.list({ filter }); console.log(response); }নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
-
EVENT_TYPE: CloudEvents স্পেসিফিকেশন অনুযায়ী ফরম্যাট করা একটি ইভেন্টের ধরন । উদাহরণস্বরূপ, কোনো চ্যাট স্পেসের নতুন সদস্যপদ সংক্রান্ত ইভেন্ট গ্রহণকারী সাবস্ক্রিপশনগুলো ফিল্টার করতে,google.workspace.chat.message.v1.createdকরুন। -
TARGET_RESOURCE: একটি টার্গেট রিসোর্স , যা তার সম্পূর্ণ রিসোর্স নাম হিসাবে ফরম্যাট করা হয়। উদাহরণস্বরূপ, একটি চ্যাট স্পেসের সাবস্ক্রিপশন দ্বারা ফিল্টার করতে,//chat.googleapis.com/spaces/ SPACE_IDব্যবহার করুন, যেখানেspaces/ SPACE_IDহলোSpaceরিসোর্সেরnameফিল্ড।
-
সাবস্ক্রিপশনগুলির তালিকা দেখতে, আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে
listSubscriptionsফাংশনটি চালান।
পাইথন
আপনার ওয়ার্কিং ডিরেক্টরিতে
list_subscriptions.pyনামে একটি ফাইল তৈরি করুন এবং নিম্নলিখিত কোডটি যোগ করুন:"""List subscriptions.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = ['SCOPE'] # 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, ) # Filter for event type (required). EVENT_TYPE = 'EVENT_TYPE' # Filter for target resource (optional). TARGET_RESOURCE = 'TARGET_RESOURCE' FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"' response = service.subscriptions().list(filter=FILTER).execute() print(response)নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
-
SCOPE: একটি OAuth স্কোপ যা সাবস্ক্রিপশন থেকে অন্তত একটি ইভেন্ট টাইপ সমর্থন করে । উদাহরণস্বরূপ, যদি আপনার সাবস্ক্রিপশন একটি আপডেট হওয়া চ্যাট স্পেসের ইভেন্ট গ্রহণ করে,https://www.googleapis.com/auth/chat.spaces.readonly। -
EVENT_TYPE: CloudEvents স্পেসিফিকেশন অনুযায়ী ফরম্যাট করা একটি ইভেন্টের ধরন । উদাহরণস্বরূপ, কোনো চ্যাট স্পেসের নতুন সদস্যপদ সংক্রান্ত ইভেন্ট গ্রহণকারী সাবস্ক্রিপশনগুলো ফিল্টার করতে,google.workspace.chat.message.v1.createdকরুন। -
TARGET_RESOURCE: একটি টার্গেট রিসোর্স , যা তার সম্পূর্ণ রিসোর্স নাম হিসাবে ফরম্যাট করা হয়। উদাহরণস্বরূপ, একটি চ্যাট স্পেসের সাবস্ক্রিপশন দ্বারা ফিল্টার করতে,//chat.googleapis.com/spaces/ SPACE_IDব্যবহার করুন, যেখানেspaces/ SPACE_IDহলোSpaceরিসোর্সেরnameফিল্ড।
-
আপনার ওয়ার্কিং ডিরেক্টরিতে, আপনার OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়ালগুলো সংরক্ষণ করেছেন এবং ফাইলটির নাম
credentials.jsonরেখেছেন কিনা তা নিশ্চিত করুন। কোড স্যাম্পলটি গুগল ওয়ার্কস্পেসের সাথে প্রমাণীকরণ করতে এবং ব্যবহারকারীর ক্রেডেনশিয়াল পেতে এই JSON ফাইলটি ব্যবহার করে। নির্দেশাবলীর জন্য, "Create OAuth client ID credentials" দেখুন।সাবস্ক্রিপশনগুলির তালিকা দেখতে, আপনার টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
python3 list_subscriptions.py
গুগল ওয়ার্কস্পেস ইভেন্টস এপিআই আপনার কোয়েরির ফিল্টারের সাথে মেলে এমন Subscription অবজেক্টগুলোর একটি পেজিনেটেড অ্যারে ফেরত দেয়।