این صفحه نحوه فهرست کردن اشتراکهای Google Workspace را با استفاده از متد subscriptions.list()
توضیح میدهد.
هنگامی که این روش را با احراز هویت کاربر فراخوانی میکنید، این روش فهرستی از اشتراکهای مجاز توسط کاربر را برمیگرداند. وقتی از احراز هویت برنامه استفاده میکنید، این روش میتواند فهرستی را که حاوی هر گونه اشتراکی برای برنامه است، برگرداند.
پیش نیازها
اسکریپت برنامه ها
- اشتراک Google Workspace. برای ایجاد یک اشتراک، به ایجاد اشتراک مراجعه کنید.
نیاز به احراز هویت کاربر با یک یا چند حوزه دارد که از همه انواع رویداد برای اشتراک پشتیبانی می کند .
- پروژه Apps Script:
- از پروژه Google Cloud خود به جای پروژه پیشفرض ایجاد شده توسط Apps Script استفاده کنید.
- برای هر دامنهای که برای پیکربندی صفحه رضایت OAuth اضافه کردهاید، باید دامنهها را نیز به فایل
appsscript.json
در پروژه Apps Script خود اضافه کنید. به عنوان مثال: - سرویس پیشرفته
Google Workspace Events
را فعال کنید .
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
پایتون
- پایتون 3.6 یا بالاتر
- ابزار مدیریت بسته پیپ
- جدیدترین کتابخانه های مشتری گوگل برای پایتون. برای نصب یا به روز رسانی آنها، دستور زیر را در رابط خط فرمان خود اجرا کنید:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- اشتراک Google Workspace. برای ایجاد یک اشتراک، به ایجاد اشتراک مراجعه کنید.
نیاز به احراز هویت :
- برای احراز هویت کاربر، به محدودهای نیاز دارد که حداقل یکی از انواع رویداد را برای اشتراک پشتیبانی کند. برای شناسایی یک محدوده، محدوده ها بر اساس نوع رویداد را ببینید.
- برای احراز هویت برنامه، به محدوده
chat.bot
نیاز دارد (فقط برنامههای گپ Google).
فهرست اشتراک های مجاز توسط یک کاربر
برای فهرست کردن اشتراکها، باید حداقل یک نوع رویداد را فیلتر کنید. همچنین می توانید درخواست خود را با یک یا چند منبع هدف فیلتر کنید. برای آشنایی با فیلترهای پرس و جو پشتیبانی شده، به مستندات متد list()
مراجعه کنید.
نمونه کد زیر آرایه ای از اشیاء 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 دریافت میکنند،google.workspace.chat.message.v1.created
. -
TARGET_RESOURCE
: یک منبع هدف که به عنوان نام منبع کامل آن قالب بندی شده است. به عنوان مثال، برای فیلتر کردن بر اساس اشتراک برای فضای چت Google، از//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('client_secrets.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 دریافت میکنند،google.workspace.chat.message.v1.created
. -
TARGET_RESOURCE
: یک منبع هدف که به عنوان نام منبع کامل آن قالب بندی شده است. به عنوان مثال، برای فیلتر کردن بر اساس اشتراک برای فضای چت Google، از//chat.googleapis.com/spaces/ SPACE_ID
استفاده کنید که در آنspaces/ SPACE_ID
نشان دهنده فیلدname
برای منبعSpace
است.
-
در فهرست کاری خود، مطمئن شوید که اعتبار شناسه مشتری OAuth خود را ذخیره کرده اید و نام فایل را
client_secrets.json
گذاشته اید. نمونه کد از این فایل JSON برای احراز هویت با Google Workspace و دریافت اعتبار کاربر استفاده می کند. برای دستورالعملها، به ایجاد اعتبار شناسه مشتری OAuth مراجعه کنید.برای فهرست کردن اشتراکها، موارد زیر را در ترمینال خود اجرا کنید:
python3 list_subscriptions.py
Google Workspace Events API یک آرایه صفحهبندی شده از اشیاء Subscription
را برمیگرداند که با فیلتر درخواست شما مطابقت دارند.