رویدادها را از فضای چت Google فهرست کنید

این راهنما نحوه استفاده از متد list() روی منبع SpaceEvent از API چت گوگل را برای فهرست کردن تغییرات منابع در یک فضا توضیح می‌دهد.

منبع SpaceEvent نشان‌دهنده‌ی تغییری در فضای هدف، شامل منابع فرزند فضا مانند پیام‌ها، واکنش‌ها و عضویت‌ها است. برای اطلاعات بیشتر در مورد لیست انواع رویدادها و بارهای رویداد پشتیبانی‌شده، به فیلدهای eventType و payload در مستندات مرجع منابع SpaceEvent مراجعه کنید.

شما می‌توانید رویدادها را تا ۲۸ روز قبل از زمان درخواست فهرست کنید. سرور رویدادهایی را که حاوی جدیدترین نسخه منبع تحت تأثیر هستند، برمی‌گرداند. برای مثال، اگر رویدادهایی را در مورد اعضای جدید فضا فهرست کنید، سرور منابع Membership را که حاوی آخرین جزئیات عضویت هستند، برمی‌گرداند. اگر اعضای جدید در طول دوره درخواستی حذف شده باشند، بار رویداد حاوی یک منبع Membership خالی است.

برای فهرست کردن رویدادهای یک فضا، کاربر احراز هویت شده یا برنامه چت باید عضو آن فضا باشند.

پیش‌نیازها

نود جی اس

پایتون

فهرست رویدادهای فضایی (احراز هویت کاربر)

برای فهرست کردن رویدادهای فضایی از یک فضای چت، موارد زیر را در درخواست خود وارد کنید:

  • برای پشتیبانی از هر نوع رویداد در درخواست خود، یک یا چند حوزه مجوزدهی مشخص کنید. به عنوان یک روش بهتر، محدودترین حوزه‌ای را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد می‌دهد. برای انتخاب یک حوزه، به نمای کلی احراز هویت و مجوزدهی مراجعه کنید.

  • متد ListSpaceEvents() را فراخوانی کنید و filter انواع رویداد را به list ارسال کنید. شما باید حداقل یک نوع رویداد را مشخص کنید و همچنین می‌توانید بر اساس تاریخ فیلتر کنید. برای لیستی از انواع رویدادهای پشتیبانی شده، به فیلد eventType در مستندات مرجع منابع SpaceEvent مراجعه کنید.

مثال زیر رویدادهای مربوط به عضویت‌های جدید و پیام‌ها را در یک فضا فهرست می‌کند:

نود جی اس

chat/client-libraries/cloud/list-space-events-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

// Authorization scopes based on the event types
const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships.readonly',
  'https://www.googleapis.com/auth/chat.messages.readonly',
];

// This sample shows how to list space events with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    parent: 'spaces/SPACE_NAME',
    // A required filter. Filters events about new memberships and messages.
    filter:
      'eventTypes:"google.workspace.chat.membership.v1.created" OR eventTypes:"google.workspace.chat.message.v1.created"',
  };

  // Make the request
  const pageResult = chatClient.listSpaceEventsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

await main();

برای اجرای این نمونه، به جای 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 برنامه خود را باز کنید و موارد زیر را انجام دهید:

  1. در کنسول گوگل کلود، به Menu > APIs & Services > Credentials بروید.

    به اعتبارنامه‌ها بروید

  2. روی ایجاد اعتبارنامه > کلید API کلیک کنید.
  3. کلید API جدید شما نمایش داده می‌شود.
    • برای کپی کردن کلید API خود جهت استفاده در کد برنامه، روی گزینه کپی کردن کلیک کنید. کلید API را می‌توانید در بخش «کلیدهای API» در اعتبارنامه‌های پروژه خود نیز پیدا کنید.
    • برای جلوگیری از استفاده غیرمجاز، توصیه می‌کنیم مکان و نوع APIهایی که کلید API می‌تواند استفاده شود را محدود کنید. برای جزئیات بیشتر، به افزودن محدودیت‌های API مراجعه کنید.

اسکریپتی بنویسید که Chat API را فراخوانی کند

در اینجا نحوه فهرست کردن رویدادهای فضایی با احراز هویت برنامه و Chat REST API آورده شده است:

پایتون

  1. در دایرکتوری کاری خود، فایلی با نام chat_spaceevents_list_app.py ایجاد کنید.
  2. کد زیر را در 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()
    
  3. در کد، موارد زیر را جایگزین کنید:

    • API_KEY : کلید API که برای ساخت نقطه پایانی سرویس برای Chat API ایجاد کرده‌اید.
    • SPACE_NAME : نام یک فضا که می‌توانید آن را از متد spaces.list در Chat API یا از URL یک فضا به دست آورید.
  4. در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_spaceevents_list_app.py

API چت، فهرستی از رویدادهای فضایی صفحه‌بندی‌شده در مورد عضویت‌ها و پیام‌های جدید را برمی‌گرداند.