فهرست فضاها

این راهنما نحوه استفاده از منبع list در منبع Space API Google Chat را برای فهرست کردن فضاها توضیح می‌دهد. Listing spaces یک لیست صفحه بندی شده و قابل فیلتر از فضاها را برمی گرداند.

منبع Space مکانی را نشان می‌دهد که در آن افراد و برنامه‌های چت می‌توانند پیام ارسال کنند، فایل‌ها را به اشتراک بگذارند و با هم همکاری کنند. چند نوع فضا وجود دارد:

  • پیام‌های مستقیم (DM) مکالمات بین دو کاربر یا یک کاربر و یک برنامه چت هستند.
  • چت گروهی مکالمه بین سه یا چند کاربر و برنامه های چت است.
  • فضاهای نام‌گذاری شده مکان‌هایی هستند که افراد در آن پیام می‌فرستند، فایل‌ها را به اشتراک می‌گذارند و همکاری می‌کنند.

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

پیش نیازها

پایتون

  • پایتون 3.6 یا بالاتر
  • ابزار مدیریت بسته پیپ
  • جدیدترین کتابخانه های مشتری گوگل برای پایتون. برای نصب یا به روز رسانی آنها، دستور زیر را در رابط خط فرمان خود اجرا کنید:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • یک پروژه Google Cloud با Google Chat API فعال و پیکربندی شده است. برای مراحل، به ساخت برنامه گپ Google مراجعه کنید.
  • مجوز برای برنامه چت پیکربندی شد. Listing spaces از هر دو روش احراز هویت زیر پشتیبانی می کند:

Node.js

  • Node.js و npm
  • جدیدترین کتابخانه های سرویس گیرنده Google برای Node.js. برای نصب آنها، دستور زیر را در رابط خط فرمان خود اجرا کنید:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • یک پروژه Google Cloud با Google Chat API فعال و پیکربندی شده است. برای مراحل، به ساخت برنامه گپ Google مراجعه کنید.
  • مجوز برای برنامه چت پیکربندی شد. Listing spaces از هر دو روش احراز هویت زیر پشتیبانی می کند:

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

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

مثال زیر فضاهای نام‌گذاری شده و چت‌های گروهی (اما نه پیام‌های مستقیم، که فیلتر شده‌اند) را فهرست می‌کند که برای کاربر تأیید شده قابل مشاهده است:

پایتون

  1. در پوشه کاری خود، یک فایل با نام chat_space_list.py ایجاد کنید.
  2. کد زیر را در chat_space_list.py قرار دهید:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists named spaces and group chats (but not direct messages)
        visible to the authenticated user.
        '''
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                          'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().list(
    
              # An optional filter that returns named spaces or unnamed group chats,
              # but not direct messages (DMs).
              filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
          ).execute()
    
        # Prints the returned list of spaces.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در پوشه کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_space_list.py
    

Node.js

  1. در پوشه کاری خود، یک فایل با نام list-spaces.js ایجاد کنید.
  2. کد زیر را در list-spaces.js قرار دهید:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. در پوشه کاری خود، نمونه را اجرا کنید:

    node list-spaces.js
    

Chat API یک آرایه صفحه بندی شده از فضاهای نامگذاری شده و چت های گروهی را برمی گرداند.

فضاها را با احراز هویت برنامه فهرست کنید

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

مثال زیر مکان‌های نام‌گذاری شده و چت‌های گروهی (اما نه پیام‌های مستقیم) قابل مشاهده در برنامه چت را فهرست می‌کند:

پایتون

  1. در فهرست کاری خود، یک فایل با نام chat_space_list_app.py ایجاد کنید.
  2. کد زیر را در chat_space_list_app.py قرار دهید:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().list(
    
            # An optional filter that returns named spaces or unnamed
            # group chats, but not direct messages (DMs).
            filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
        ).execute()
    
    print(result)
    
  3. در پوشه کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_space_list_app.py
    

Node.js

  1. در پوشه کاری خود، یک فایل با نام app-list-spaces.js ایجاد کنید.
  2. کد زیر را در app-list-spaces.js قرار دهید:

    const chat = require('@googleapis/chat');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.bot',
      ];
    
      const auth = new chat.auth.GoogleAuth({
        scopes,
        keyFilename: 'credentials.json',
      });
    
      const authClient = await auth.getClient();
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. در پوشه کاری خود، نمونه را اجرا کنید:

    node app-list-spaces.js
    

Chat API یک آرایه صفحه بندی شده از فضاها را برمی گرداند.

صفحه بندی را سفارشی کنید یا لیست را فیلتر کنید

برای فهرست کردن فضاها در Google Chat، پارامترهای پرس و جو اختیاری زیر را برای سفارشی کردن صفحه بندی یا فیلتر کردن فضاهای فهرست شده ارسال کنید:

  • pageSize : حداکثر تعداد فاصله برای بازگشت. ممکن است این سرویس کمتر از این مقدار را برگرداند. اگر نامشخص باشد، حداکثر 100 فاصله برگردانده می شود. حداکثر مقدار 1000 است. مقادیر بالای 1000 به طور خودکار به 1000 تغییر می کند.
  • pageToken : یک نشانه صفحه، دریافت شده از یک تماس قبلی با فاصله لیست. این نشانه را برای بازیابی صفحه بعدی ارائه دهید. هنگام صفحه‌بندی، مقدار فیلتر باید با تماسی که توکن صفحه را ارائه می‌کند مطابقت داشته باشد. عبور یک مقدار متفاوت ممکن است منجر به نتایج غیرمنتظره شود.
  • filter : یک فیلتر پرس و جو. برای جزئیات درخواست پشتیبانی شده، به روش spaces.list مراجعه کنید.