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

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

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

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

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

پیش نیازها

Node.js

پایتون

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

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

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

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

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

Node.js

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 فضا بدست آورید.

Chat 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. در کنسول Google Cloud، به > APIs & Services > Credentials بروید.

    به Credentials بروید

  2. روی ایجاد اعتبارنامه > کلید API کلیک کنید.
  3. کلید API جدید شما نمایش داده می شود.
    • روی Copy کلیک کنید تا کلید 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.readonly` 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

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