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

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

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

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

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

پیش نیازها

Node.js

پایتون

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

برای دریافت جزئیات یک رویداد فضایی در Google Chat، موارد زیر را در درخواست خود ارسال کنید:

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

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

Node.js

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

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() بدست آورید. برای یادگیری نحوه استفاده از این روش، فهرست رویدادها را از یک فاصله ببینید.
  • SPACE_NAME : شناسه از name فضا. شما می توانید شناسه را با فراخوانی متد ListSpaces() یا از URL فضا بدست آورید.
  • SPACE_EVENT_NAME : شناسه name رویداد فضایی. می توانید شناسه را از متد ListSpaceEvents() بدست آورید. برای یادگیری نحوه استفاده از این روش، فهرست رویدادها را از یک فاصله ببینید.

Chat API نمونه ای از SpaceEvent را با جزئیات مربوط به رویداد برمی گرداند.

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

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

برای دریافت جزئیات درباره یک رویداد فضایی از یک فضا با تأیید اعتبار برنامه با استفاده از 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
  • متد get را در منبع spaceEvents فراخوانی کنید.
  • برای دریافت جزئیات رویداد، name فضا را ارسال کنید.

یک کلید 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 آمده است:

پایتون

این نمونه کد پایتون از 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.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().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. در کد زیر را جایگزین کنید:

    • API_KEY : کلید API که برای ساختن نقطه پایانی سرویس برای Chat API ایجاد کردید.
    • SPACE_NAME : نام فضایی است که می توانید از روش spaces.list در Chat API یا از URL یک فضا دریافت کنید.
    • SPACE_EVENT_NAME : شناسه name رویداد فضایی. می توانید شناسه را از متد ListSpaceEvents() بدست آورید. برای یادگیری نحوه استفاده از این روش، فهرست رویدادها را از یک فاصله ببینید.
  4. در پوشه کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_spaceevents_get_app.py

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