این صفحه نحوهی فهرست کردن اشتراکهای Google Workspace را با استفاده از متد subscriptions.list() توضیح میدهد.
وقتی این متد را با احراز هویت کاربر فراخوانی میکنید، این متد لیستی از اشتراکهای مجاز توسط کاربر را برمیگرداند. وقتی از احراز هویت برنامه استفاده میکنید، این متد میتواند لیستی را برگرداند که شامل هرگونه اشتراکی برای برنامه است.
پیشنیازها
اسکریپت برنامهها
- اشتراک Google Workspace. برای ایجاد آن، به «ایجاد اشتراک» مراجعه کنید.
- یک پروژه اسکریپت برنامهها:
- به جای پروژه پیشفرضی که به طور خودکار توسط Apps Script ایجاد شده است، از پروژه Google Cloud خود استفاده کنید.
- برای تمام محدودههایی که برای پیکربندی صفحه رضایت OAuth اضافه کردهاید، باید محدودهها را به فایل
appsscript.jsonدر پروژه Apps Script خود نیز اضافه کنید. برای مثال، اگر محدودهchat.messagesرا مشخص کردهاید، موارد زیر را اضافه کنید: - سرویس پیشرفته
Google Workspace Eventsرا فعال کنید .
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
برای هر نوع رویداد در اشتراک، احراز هویت و محدوده مجوز مناسب لازم است:
- برای احراز هویت کاربر، به محدودهای نیاز است که حداقل از یکی از انواع رویدادهای اشتراک پشتیبانی کند. برای شناسایی یک محدوده، به بخش محدودهها بر اساس نوع رویداد مراجعه کنید.
- برای احراز هویت برنامه، به دامنه
chat.botنیاز است (فقط برنامههای Google Chat).
پایتون
- پایتون ۳.۶ یا بالاتر
- ابزار مدیریت بسته pip
- جدیدترین کتابخانههای کلاینت گوگل برای پایتون. برای نصب یا بهروزرسانی آنها، دستور زیر را در رابط خط فرمان خود اجرا کنید:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- اشتراک Google Workspace. برای ایجاد آن، به «ایجاد اشتراک» مراجعه کنید.
برای هر نوع رویداد در اشتراک، احراز هویت و محدوده مجوز مناسب لازم است:
- برای احراز هویت کاربر، به محدودهای نیاز است که حداقل از یکی از انواع رویدادهای اشتراک پشتیبانی کند. برای شناسایی یک محدوده، به بخش محدودهها بر اساس نوع رویداد مراجعه کنید.
- برای احراز هویت برنامه، به دامنه
chat.botنیاز است (فقط برنامههای Google Chat).
فهرست اشتراکهای مجاز توسط یک کاربر
برای فهرست کردن اشتراکها، باید حداقل بر اساس یک نوع رویداد فیلتر کنید. همچنین میتوانید کوئری خود را بر اساس یک یا چند منبع هدف فیلتر کنید. برای کسب اطلاعات در مورد فیلترهای کوئری پشتیبانی شده، به مستندات متد list() مراجعه کنید.
نمونه کد زیر آرایهای از اشیاء Subscription را که بر اساس نوع رویداد و منبع هدف فیلتر شدهاند، برمیگرداند. هنگامی که به عنوان کاربر احراز هویت میشود، این متد فقط لیستی از Subscriptionهایی را که کاربر به برنامه اجازه ایجاد آنها را داده است، برمیگرداند.
برای فهرست کردن اشتراکها برای یک نوع رویداد مشخص و منبع هدف:
اسکریپت برنامهها
در پروژه Apps Script خود، یک فایل اسکریپت جدید با نام
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نشان دهنده فیلدnameبرای منبعSpaceاست.
-
برای فهرست کردن اشتراکها، تابع
listSubscriptionsرا در پروژه Apps Script خود اجرا کنید.
پایتون
در دایرکتوری کاری خود، فایلی با نام
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نشان دهنده فیلدnameبرای منبعSpaceاست.
-
در دایرکتوری کاری خود، مطمئن شوید که اعتبارنامههای شناسه کلاینت OAuth خود را ذخیره کرده و فایل را با نام
credentials.jsonنامگذاری کردهاید. نمونه کد از این فایل JSON برای احراز هویت با Google Workspace و دریافت اعتبارنامههای کاربر استفاده میکند. برای دستورالعملها، به Create OAuth client ID credentials مراجعه کنید.برای فهرست کردن اشتراکها، دستور زیر را در ترمینال خود اجرا کنید:
python3 list_subscriptions.py
رابط برنامهنویسی کاربردی رویدادهای فضای کاری گوگل (Google Workspace Events API) یک آرایه صفحهبندیشده از اشیاء Subscription را برمیگرداند که با فیلتر مورد نظر شما مطابقت دارند.