جزئیات یک رویداد فضایی Google Chat را دریافت کنید

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

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

شما می‌توانید رویدادها را تا ۲۸ روز قبل از زمان درخواست درخواست کنید. این رویداد شامل جدیدترین نسخه منبعی است که تغییر کرده است. به عنوان مثال، اگر رویدادی در مورد یک پیام جدید درخواست کنید اما پیام بعداً به‌روزرسانی شود، سرور منبع Message به‌روزرسانی شده را در payload رویداد برمی‌گرداند.

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

پیش‌نیازها

نود جی اس

پایتون

دریافت جزئیات مربوط به یک رویداد فضایی (احراز هویت کاربر)

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

  • یک محدوده مجوزدهی مشخص کنید که از نوع رویداد در درخواست شما پشتیبانی کند. به عنوان یک روش بهتر، محدودترین محدوده‌ای را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد می‌دهد.
  • متد GetSpaceEvent() را فراخوانی کنید و name رویداد فضایی را که می‌خواهید دریافت کنید، به آن ارسال کنید.

مثال زیر یک رویداد فضایی دریافت می‌کند:

نود جی اس

این نمونه کد Node.js از API چت RPC استفاده می‌کند.

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

// Replace SCOPE_NAME here with an authorization scope based on the event type
const USER_AUTH_OAUTH_SCOPES = ['SCOPE_NAME'];

// This sample shows how to get space event 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 and SPACE_EVENT_NAME here
    name: 'spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
  };

  // Make the request
  const response = await chatClient.getSpaceEvent(request);

  // Handle the response
  console.log(response);
}

await main();

برای اجرای این نمونه، موارد زیر را جایگزین کنید:

  • SCOPE_NAME : یک محدوده مجوز بر اساس نوع رویداد. برای مثال، اگر در مورد یک عضویت جدید، یک رویداد فضایی دریافت می‌کنید، از محدوده chat.memberships.readonly با فرمت https://www.googleapis.com/auth/chat.memberships.readonly استفاده کنید. می‌توانید نوع رویداد را از متد ListSpaceEvents() دریافت کنید. برای یادگیری نحوه استفاده از این متد، به List events from a space مراجعه کنید.
  • SPACE_NAME : شناسه‌ی name فضا. می‌توانید شناسه را با فراخوانی متد ListSpaces() یا از URL فضا به دست آورید.
  • SPACE_EVENT_NAME : شناسه‌ای که از name رویداد فضایی گرفته شده است. می‌توانید شناسه را از متد ListSpaceEvents() به دست آورید. برای یادگیری نحوه استفاده از این متد، به بخش «فهرست رویدادها از یک فضا» مراجعه کنید.

API چت، نمونه‌ای از SpaceEvent را به همراه جزئیاتی در مورد رویداد برمی‌گرداند.

دریافت جزئیات مربوط به یک رویداد فضایی (احراز هویت از طریق برنامه چت)

احراز هویت برنامه نیاز به تأیید یک‌باره مدیر دارد.

برای دریافت جزئیات مربوط به یک رویداد فضایی از یک فضا با احراز هویت برنامه با استفاده از Chat REST API ، موارد زیر را در درخواست خود ارسال کنید:

  • برای پشتیبانی از هر نوع رویداد در درخواست خود، یک یا چند حوزه مجوزدهی مشخص کنید. به عنوان یک روش بهتر، محدودترین حوزه‌ای را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد می‌دهد. برای کسب اطلاعات بیشتر در مورد انتخاب یک حوزه، به نمای کلی احراز هویت و مجوزدهی مراجعه کنید.
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.memberships.readonly
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
    • https://www.googleapis.com/auth/chat.app.spaces.readonly
  • متد get را روی منبع spaceEvents فراخوانی کنید.
  • name فضایی را که می‌خواهید جزئیات رویداد را از آن دریافت کنید، وارد کنید.

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

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

پایتون

این نمونه کد پایتون از Chat REST API استفاده می‌کند.

  1. در دایرکتوری کاری خود، فایلی با نام chat_spaceevents_get_app.py ایجاد کنید.
  2. کد زیر را در chat_spaceevents_get_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.memberships.readonly",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces",
              "https://www.googleapis.com/auth/chat.app.spaces.readonly"]
    
    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)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().spaceEvents().get(
    
            # The space to get event details 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.
            name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در کد، موارد زیر را جایگزین کنید:

    • SPACE_NAME : نام یک فضا که می‌توانید آن را از متد spaces.list در Chat API یا از URL یک فضا به دست آورید.
    • SPACE_EVENT_NAME : شناسه‌ای که از name رویداد فضایی گرفته شده است. می‌توانید شناسه را از متد ListSpaceEvents() به دست آورید. برای یادگیری نحوه استفاده از این متد، به بخش «فهرست رویدادها از یک فضا» مراجعه کنید.
  4. در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_spaceevents_get_app.py

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