این راهنما نحوه استفاده از متد list() روی منبع SpaceEvent از API چت گوگل را برای فهرست کردن تغییرات منابع در یک فضا توضیح میدهد.
منبع SpaceEvent نشاندهندهی تغییری در فضای هدف، شامل منابع فرزند فضا مانند پیامها، واکنشها و عضویتها است. برای اطلاعات بیشتر در مورد لیست انواع رویدادها و بارهای رویداد پشتیبانیشده، به فیلدهای eventType و payload در مستندات مرجع منابع SpaceEvent مراجعه کنید.
شما میتوانید رویدادها را تا ۲۸ روز قبل از زمان درخواست فهرست کنید. سرور رویدادهایی را که حاوی جدیدترین نسخه منبع تحت تأثیر هستند، برمیگرداند. برای مثال، اگر رویدادهایی را در مورد اعضای جدید فضا فهرست کنید، سرور منابع Membership را که حاوی آخرین جزئیات عضویت هستند، برمیگرداند. اگر اعضای جدید در طول دوره درخواستی حذف شده باشند، بار رویداد حاوی یک منبع Membership خالی است.
برای فهرست کردن رویدادهای یک فضا، کاربر احراز هویت شده یا برنامه چت باید عضو آن فضا باشند.
پیشنیازها
نود جی اس
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- کتابخانه کلاینت ابری Node.js را نصب کنید.
- بر اساس نحوهی احراز هویت در درخواست API چت گوگل خود، اعتبارنامههای دسترسی ایجاد کنید:
- برای احراز هویت به عنوان کاربر چت، اعتبارنامههای OAuth client ID را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonدر دایرکتوری محلی خود ذخیره کنید. - برای احراز هویت به عنوان برنامه چت، اعتبارنامههای حساب سرویس را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonذخیره کنید.
- برای احراز هویت به عنوان کاربر چت، اعتبارنامههای OAuth client ID را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
- بر اساس اینکه میخواهید به عنوان کاربر یا برنامه چت احراز هویت کنید ، یک محدوده مجوز انتخاب کنید .
پایتون
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- کتابخانه کلاینت ابری پایتون را نصب کنید.
- بر اساس نحوهی احراز هویت در درخواست API چت گوگل خود، اعتبارنامههای دسترسی ایجاد کنید:
- برای احراز هویت به عنوان کاربر چت، اعتبارنامههای OAuth client ID را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonدر دایرکتوری محلی خود ذخیره کنید. - برای احراز هویت به عنوان برنامه چت، اعتبارنامههای حساب سرویس را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonذخیره کنید.
- برای احراز هویت به عنوان کاربر چت، اعتبارنامههای OAuth client ID را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
- بر اساس اینکه میخواهید به عنوان کاربر یا برنامه چت احراز هویت کنید ، یک محدوده مجوز انتخاب کنید .
فهرست رویدادهای فضایی (احراز هویت کاربر)
برای فهرست کردن رویدادهای فضایی از یک فضای چت، موارد زیر را در درخواست خود وارد کنید:
برای پشتیبانی از هر نوع رویداد در درخواست خود، یک یا چند حوزه مجوزدهی مشخص کنید. به عنوان یک روش بهتر، محدودترین حوزهای را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد میدهد. برای انتخاب یک حوزه، به نمای کلی احراز هویت و مجوزدهی مراجعه کنید.
متد
ListSpaceEvents()را فراخوانی کنید وfilterانواع رویداد را به list ارسال کنید. شما باید حداقل یک نوع رویداد را مشخص کنید و همچنین میتوانید بر اساس تاریخ فیلتر کنید. برای لیستی از انواع رویدادهای پشتیبانی شده، به فیلدeventTypeدر مستندات مرجع منابعSpaceEventمراجعه کنید.
مثال زیر رویدادهای مربوط به عضویتهای جدید و پیامها را در یک فضا فهرست میکند:
نود جی اس
برای اجرای این نمونه، به جای SPACE_NAME ، شناسهی name فضا را وارد کنید. میتوانید شناسه را با فراخوانی متد ListSpaces() یا از طریق URL فضا به دست آورید.
API چت، فهرستی از رویدادهای فضایی صفحهبندیشده در مورد عضویتها و پیامهای جدید را برمیگرداند.
رویدادهای فضایی را فهرست کنید (احراز هویت برنامه چت)
احراز هویت برنامه نیاز به تأیید یکباره مدیر دارد.
برای فهرست کردن رویدادهای فضایی از یک فضا با احراز هویت برنامه و Chat REST API ، موارد زیر را در درخواست خود وارد کنید:
- برای پشتیبانی از هر نوع رویداد در درخواست خود، یک یا چند حوزه مجوزدهی مشخص کنید. به عنوان یک روش بهتر، محدودترین حوزهای را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد میدهد. برای کسب اطلاعات بیشتر در مورد انتخاب یک حوزه، به نمای کلی احراز هویت و مجوزدهی مراجعه کنید.
-
https://www.googleapis.com/auth/chat.app.memberships -
https://www.googleapis.com/auth/chat.app.messages.readonly -
https://www.googleapis.com/auth/chat.app.spaces
-
- متد
listرا روی منبعspaceEventsفراخوانی کنید. -
nameفضایی را که میخواهید پیامها از آن فهرست شوند، ارسال کنید. - برای پرس و جو از انواع رویدادهای خاص، یک
filterارسال کنید.
ایجاد کلید API
برای فراخوانی متد API پیشنمایش توسعهدهنده، باید از یک نسخه پیشنمایش توسعهدهنده غیرعمومی از سند کشف API استفاده کنید. برای تأیید اعتبار درخواست، باید یک کلید API ارسال کنید.
برای ایجاد کلید API، پروژه Google Cloud برنامه خود را باز کنید و موارد زیر را انجام دهید:
- در کنسول گوگل کلود، به Menu > APIs & Services > Credentials بروید.
- روی ایجاد اعتبارنامه > کلید API کلیک کنید.
- کلید API جدید شما نمایش داده میشود.
- برای کپی کردن کلید API خود جهت استفاده در کد برنامه، روی گزینه کپی کردن کلیک کنید. کلید API را میتوانید در بخش «کلیدهای API» در اعتبارنامههای پروژه خود نیز پیدا کنید.
- برای جلوگیری از استفاده غیرمجاز، توصیه میکنیم مکان و نوع APIهایی که کلید API میتواند استفاده شود را محدود کنید. برای جزئیات بیشتر، به افزودن محدودیتهای API مراجعه کنید.
اسکریپتی بنویسید که Chat API را فراخوانی کند
در اینجا نحوه فهرست کردن رویدادهای فضایی با احراز هویت برنامه و Chat REST API آورده شده است:
پایتون
- در دایرکتوری کاری خود، فایلی با نام
chat_spaceevents_list_app.pyایجاد کنید. کد زیر را در
chat_spaceevents_list_app.pyقرار دهید:from google.oauth2 import service_account from apiclient.discovery import build # Define your app's authorization scopes. # Set authorization scopes based on the # event type. For example, if you are getting a space event # about a new membership, use the `chat.app.memberships` scope. # # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships", "https://www.googleapis.com/auth/chat.app.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces"] def main(): ''' Authenticates with Chat API using app authentication, then lists space events from a specified space. ''' # Specify service account details. creds = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY') # Use the service endpoint to call Chat API. result = chat.spaces().spaceEvents().list( # The space to list events from. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE_NAME', # A required filter. Filters events by event type. # # Update this filter to match your requirements. filter='eventTypes:"google.workspace.chat.message.v1.created"' ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()در کد، موارد زیر را جایگزین کنید:
-
API_KEY: کلید API که برای ساخت نقطه پایانی سرویس برای Chat API ایجاد کردهاید. -
SPACE_NAME: نام یک فضا که میتوانید آن را از متدspaces.listدر Chat API یا از URL یک فضا به دست آورید.
-
در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:
python3 chat_spaceevents_list_app.py
API چت، فهرستی از رویدادهای فضایی صفحهبندیشده در مورد عضویتها و پیامهای جدید را برمیگرداند.