به روز رسانی عضویت کاربر در فضای چت گوگل، به روز رسانی عضویت کاربر در فضای چت گوگل

این راهنما نحوه استفاده از متد patch() در منبع membership Google Chat API برای تغییر ویژگی‌های عضویت، مانند تغییر یک عضو فضایی به مدیر فضایی یا تغییر مدیر فضایی به عضو فضایی توضیح می‌دهد.

اگر یک سرپرست Google Workspace هستید، می‌توانید برای به‌روزرسانی عضویت هر فضا در سازمان Google Workspace خود، متد patch() فراخوانی کنید.

منبع Membership نشان می‌دهد که آیا کاربر انسانی یا برنامه چت Google به یک فضا دعوت شده، بخشی از آن یا غایب است.

پیش نیازها

پایتون

Node.js

اسکریپت برنامه ها

یک عضویت را به روز کنید

برای به‌روزرسانی عضویت فضایی، موارد زیر را در درخواست خود بنویسید:

  • محدوده مجوز chat.memberships را مشخص کنید.
  • متد patch() را در منبع Membership فراخوانی کنید و name عضویت را برای به روز رسانی ارسال کنید، همچنین یک updateMask و body که ویژگی های عضویت به روز شده را مشخص می کند.
  • updateMask جنبه های عضویت برای به روز رسانی را مشخص می کند و شامل موارد زیر است:
    • role : نقش کاربر در فضای چت، که اقدامات مجاز آنها را در فضا تعیین می کند. مقادیر ممکن عبارتند از:
      • ROLE_MEMBER : عضوی از فضا. کاربر دارای مجوزهای اولیه مانند ارسال پیام به فضا است. در مکالمات گروهی 1:1 و بدون نام، همه این نقش را دارند.
      • ROLE_MANAGER : یک مدیر فضا. کاربر تمام مجوزهای اولیه به اضافه مجوزهای مدیریتی را دارد که به او اجازه می دهد فضا را مدیریت کند، مانند افزودن یا حذف اعضا. فقط در فضاهایی که spaceType SPACE است (فضاهای نامگذاری شده) پشتیبانی می شود.

یک عضو معمولی فضایی را مدیر فضایی کنید

مثال زیر با تعیین role به عنوان ROLE_MANAGER در body که ویژگی های عضویت به روز شده را مشخص می کند، یک عضو فضای معمولی را به یک مدیر فضا تبدیل می کند:

پایتون

  1. در پوشه کاری خود، یک فایل با نام chat_membership_update.py ایجاد کنید.
  2. کد زیر را در chat_membership_update.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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates a specified space member to change
        it from a regular member to a space manager.
        '''
    
        # 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().members().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MANAGER'}
    
          ).execute()
    
        # Prints details about the updated membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در کد زیر را جایگزین کنید:

    • SPACE : نام فضایی است که می توانید از روش spaces.list در Chat API یا از URL یک فضا دریافت کنید.

    • MEMBERSHIP : یک نام عضویت که می توانید از روش spaces.members.list در Chat API بدست آورید.

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

    python3 chat_membership_update.py

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Updates a membership in a Chat space to change it from
    * a space member to a space manager.
    * @return {!Promise<!Object>}
    */
    async function updateSpace() {
    
      /**
      * Authenticate with Google Workspace
      * and get user authorization.
      */
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      /**
      * Build a service endpoint for Chat API.
      */
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      /**
      * Use the service endpoint to call Chat API.
      */
      return await chatClient.spaces.patch({
    
        /**
        * The membership to update, and the updated role.
        *
        * Replace SPACE with a space name.
        * Obtain the space name from the spaces resource of Chat API,
        * or from a space's URL.
        *
        * Replace MEMBERSHIP with a membership name.
        * Obtain the membership name from the membership of Chat API.
        */
        name: 'spaces/SPACE/members/MEMBERSHIP',
        updateMask: 'role',
        requestBody: {
          role: 'ROLE_MANAGER'
        }
      });
    }
    
    /**
    * Use the service endpoint to call Chat API.
    */
    updateSpace().then(console.log);
    
  3. در کد زیر را جایگزین کنید:

    • SPACE : نام فضایی است که می توانید از روش spaces.list در Chat API یا از URL یک فضا دریافت کنید.

    • MEMBERSHIP : یک نام عضویت که می توانید از روش spaces.members.list در Chat API بدست آورید.

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

    python3 chat_membership_update.js

اسکریپت برنامه ها

این مثال Chat API را با استفاده از Advanced Chat Service فراخوانی می‌کند.

  1. محدوده مجوز chat.memberships را به فایل appsscript.json پروژه Apps Script اضافه کنید:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships"
    ]
    
  2. تابعی مانند این را به کد پروژه Apps Script اضافه کنید:

    /**
     * Updates a membership from space member to space manager.
     * @param {string} memberName The resource name of the membership.
    */
    function updateMembershipToSpaceManager(memberName) {
      try {
        const body = {'role': 'ROLE_MANAGER'};
        Chat.Spaces.Members.patch(memberName, body);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create message with error %s', err.message);
      }
    }
    

Google Chat API عضویت مشخص شده را به یک مدیر فضا تغییر می‌دهد و نمونه‌ای از Membership که جزئیات این تغییر را توضیح می‌دهد برمی‌گرداند.

یک مدیر فضایی را به عضویت دائمی خود درآورید

مثال زیر با تعیین role به عنوان ROLE_MEMBER در body که ویژگی های عضویت به روز شده را مشخص می کند، یک مدیر فضا را به یک عضو فضای معمولی تبدیل می کند:

پایتون

  1. در پوشه کاری خود، یک فایل با نام chat_membership_update.py ایجاد کنید.
  2. کد زیر را در chat_membership_update.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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates a specified space member to change
        it from a regular member to a space manager.
        '''
    
        # 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().members().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MEMBER'}
    
          ).execute()
    
        # Prints details about the updated membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در کد زیر را جایگزین کنید:

    • SPACE : نام فضایی است که می توانید از روش spaces.list در Chat API یا از URL یک فضا دریافت کنید.

    • MEMBERSHIP : یک نام عضویت که می توانید از روش spaces.members.list در Chat API بدست آورید.

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

    python3 chat_membership_update.py

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Updates a membership in a Chat space to change it from
    * a space manager to a space member.
    * @return {!Promise<!Object>}
    */
    async function updateSpace() {
    
      /**
      * Authenticate with Google Workspace
      * and get user authorization.
      */
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      /**
      * Build a service endpoint for Chat API.
      */
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      /**
      * Use the service endpoint to call Chat API.
      */
      return await chatClient.spaces.patch({
    
        /**
        * The membership to update, and the updated role.
        *
        * Replace SPACE with a space name.
        * Obtain the space name from the spaces resource of Chat API,
        * or from a space's URL.
        *
        * Replace MEMBERSHIP with a membership name.
        * Obtain the membership name from the membership of Chat API.
        */
        name: 'spaces/SPACE/members/MEMBERSHIP',
        updateMask: 'role',
        requestBody: {
          role: 'ROLE_MEMBER'
        }
      });
    }
    
    /**
    * Use the service endpoint to call Chat API.
    */
    updateSpace().then(console.log);
    
  3. در کد زیر را جایگزین کنید:

    • SPACE : نام فضایی است که می توانید از روش spaces.list در Chat API یا از URL یک فضا دریافت کنید.

    • MEMBERSHIP : یک نام عضویت که می توانید از روش spaces.members.list در Chat API بدست آورید.

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

    python3 chat_membership_update.js

اسکریپت برنامه ها

این مثال Chat API را با استفاده از Advanced Chat Service فراخوانی می‌کند.

  1. محدوده مجوز chat.memberships را به فایل appsscript.json پروژه Apps Script اضافه کنید:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships"
    ]
    
  2. تابعی مانند این را به کد پروژه Apps Script اضافه کنید:

    /**
     * Updates a membership from space manager to space member.
     * @param {string} memberName The resource name of the membership.
    */
    function updateMembershipToSpaceMember(memberName) {
      try {
        const body = {'role': 'ROLE_MEMBER'};
        Chat.Spaces.Members.patch(memberName, body);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create message with error %s', err.message);
      }
    }
    

Google Chat API عضویت مشخص شده را به یک مدیر فضا تغییر می‌دهد و نمونه‌ای از Membership که جزئیات این تغییر را توضیح می‌دهد برمی‌گرداند.

عضویت ها را به عنوان سرپرست Google Workspace به روز کنید

اگر سرپرست Google Workspace هستید، می‌توانید برای به‌روزرسانی عضویت‌ها برای هر فضایی در سازمان Google Workspace، روش patch() را فراخوانی کنید.

برای فراخوانی این روش به عنوان سرپرست Google Workspace، موارد زیر را انجام دهید:

  • روش را با استفاده از احراز هویت کاربر فراخوانی کنید و محدوده مجوزی را مشخص کنید که از فراخوانی روش با استفاده از امتیازات سرپرست پشتیبانی می کند.
  • در درخواست خود، پارامتر query useAdminAccess به true مشخص کنید.

برای اطلاعات بیشتر و مثال‌ها، به مدیریت فضاهای گپ Google به عنوان سرپرست Google Workspace مراجعه کنید.