فضای پیام مستقیم (DM) را پیدا کنید

این راهنما نحوه استفاده از روش findDirectMessage را در منبع Space Google Chat API برای دریافت جزئیات در مورد فضای پیام مستقیم (DM) توضیح می‌دهد.

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

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

احراز هویت با احراز هویت برنامه به برنامه Chat امکان می‌دهد DM‌هایی را که برنامه Chat در Google Chat به آن‌ها دسترسی دارد دریافت کند (برای مثال، پیام‌هایی که عضو آن است). احراز هویت با احراز هویت کاربر ، DM هایی را که کاربر احراز هویت شده به آنها دسترسی دارد، برمی گرداند.

پیش نیازها

پایتون

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

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

Node.js

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

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

یک پیام مستقیم پیدا کنید

برای پیدا کردن یک پیام مستقیم در Google Chat، موارد زیر را در درخواست خود ارسال کنید:

  • با احراز هویت برنامه ، محدوده مجوز chat.bot را مشخص کنید. با احراز هویت کاربر ، محدوده مجوز chat.spaces.readonly یا chat.spaces را مشخص کنید.
  • متد findDirectMessage را در منبع User فراخوانی کنید و name کاربر دیگر را در DM برای بازگشت ارسال کنید. با احراز هویت کاربر ، این روش یک DM بین کاربر تماس‌گیرنده و کاربر مشخص شده برمی‌گرداند. با احراز هویت برنامه ، این روش یک DM بین برنامه تماس گیرنده و کاربر مشخص شده برمی گرداند.
  • برای افزودن یک کاربر انسانی به‌عنوان عضو فضایی، users/{user} را مشخص کنید، جایی که {user} یا {person_id} برای person از People API یا شناسه یک user در Directory API است. برای مثال، اگر People API person resourceName people/123456789 باشد، می‌توانید کاربر را با عضویت با users/123456789 به‌عنوان member.name به فضا اضافه کنید.

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

در اینجا نحوه یافتن یک پیام مستقیم با احراز هویت کاربر آورده شده است:

پایتون

  1. در پوشه کاری خود، فایلی با نام chat_space_find_dm_user.py ایجاد کنید.
  2. کد زیر را در chat_space_find_dm_user.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 returns details about a specified DM.
        '''
    
        # 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().findDirectMessage(
    
              # The other user in the direct message (DM) to return.
              #
              # Replace USER with a user name.
              name='users/USER'
    
          ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در کد، name User را در چت گوگل جایگزین USER کنید.

  4. در پوشه کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_space_find_dm_user.py
    

Node.js

  1. در پوشه کاری خود، یک فایل با نام find-direct-message-space.js ایجاد کنید.

  2. کد زیر را در find-direct-message-space.js قرار دهید:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      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.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. در کد، name User را در چت گوگل جایگزین USER کنید.

  4. در پوشه کاری خود، نمونه را اجرا کنید:

    node find-direct-message-space.js
    

Chat API نمونه‌ای از Space را برمی‌گرداند که DM مشخص‌شده را جزئیات می‌دهد.

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

در اینجا نحوه یافتن پیام مستقیم با تأیید اعتبار برنامه آمده است:

پایتون

  1. در پوشه کاری خود، یک فایل با نام chat_space_find_dm_app.py ایجاد کنید.
  2. کد زیر را در chat_space_find_dm_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().findDirectMessage(
    
        # The other user in the direct message (DM) to return.
        #
        # Replace USER with a user name.
        name='users/USER'
    
    ).execute()
    
    print(result)
    
  3. در کد، name User را در چت گوگل جایگزین USER کنید.

  4. در پوشه کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_space_find_dm_app.py
    

Node.js

  1. در پوشه کاری خود، فایلی با نام app-find-direct-message-space.js ایجاد کنید.

  2. کد زیر را در app-find-direct-message-space.js قرار دهید:

    const chat = require('@googleapis/chat');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      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.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. در کد، name User را در چت گوگل جایگزین USER کنید.

  4. در پوشه کاری خود، نمونه را اجرا کنید:

    node app-find-direct-message-space.js
    

Chat API نمونه‌ای از Space را برمی‌گرداند که DM مشخص‌شده را جزئیات می‌دهد.