تعديل عضوية المستخدم في مساحة Google Chat

يوضّح هذا الدليل كيفية استخدام طريقة update() في مورد Membership ضمن Google Chat API لتغيير سمات عضوية، مثل تغيير دور عضو في مساحة إلى مالك مساحة، أو تغيير دور مالك مساحة إلى عضو في مساحة.

إذا كنت مشرفًا في Google Workspace، يمكنك استدعاء طريقة update() لتعديل عضوية أي مساحة في مؤسسة Google Workspace.

يمثّل المورد Membership ما إذا تمت دعوة مستخدم بشري أو تطبيق Google Chat إلى مساحة أو كان جزءًا منها أو غير متواجد فيها.

المتطلبات الأساسية

Node.js

تعديل اشتراك

لتعديل عضوية في مساحة، مرِّر ما يلي في طلبك:

  • حدِّد نطاق تفويض:
    • باستخدام مصادقة المستخدم، حدِّد نطاق تفويض chat.memberships.
    • باستخدام مصادقة التطبيق، حدِّد نطاق تفويض chat.app.memberships. عند تعديل اشتراك باستخدام مصادقة التطبيق، يمكنك تعديل الاشتراكات في المساحات التي أنشأتها تطبيقات Chat فقط. تتطلّب مصادقة التطبيق الحصول على موافقة المشرف لمرة واحدة.
  • استدعِ الطريقة UpdateMembership().
  • مرِّر membership كمثيل من Membership مع ما يلي:
    • يتم ضبط الحقل name على العضوية المطلوب تعديلها، والتي تتضمّن معرّف مساحة ومعرّف عضو.
    • يجب ضبط حقول العضوية التي سيتم تعديلها على القيم الجديدة.
  • مرِّر updateMask لتحديد جوانب الاشتراك التي تريد تعديلها، بما في ذلك ما يلي:
    • role: دور المستخدم في مساحة Chat، والذي يحدّد الإجراءات المسموح له بتنفيذها في المساحة. القيم المحتمَلة هي:
      • ROLE_MEMBER: عضو في المساحة في واجهة مستخدم Chat، يُطلق على هذا الدور اسم عضو. لدى المستخدم أذونات أساسية، مثل إرسال رسائل إلى المساحة. في المحادثات الفردية والمحادثات الجماعية بدون اسم، يكون هذا الدور متاحًا للجميع.
      • ROLE_MANAGER: مالك مساحة في واجهة مستخدم "المحادثة"، يُطلق على هذا الدور اسم المالك. يملك المستخدم جميع الأذونات الأساسية بالإضافة إلى أذونات إدارية تتيح له إدارة المساحة، مثل إضافة أعضاء أو إزالتهم. لا تتوفّر هذه الميزة إلا في المساحات التي تكون فيها قيمة spaceType هي SPACE (المساحات المُسمّاة).

تغيير دور عضو إلى مالك (مصادقة المستخدم)

يستدعي المثال التالي Chat API باستخدام مصادقة المستخدم لتحويل عضو عادي في المساحة إلى مالك المساحة من خلال تحديد role كـ ROLE_MANAGER:

Node.js

chat/client-libraries/cloud/update-membership-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships',
];

// This sample shows how to update a membership with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME',
    },
    updateMask: {
      // The field paths to update.
      paths: ['role'],
    },
  };

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

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

await main();

لتشغيل العيّنة، استبدِل ما يلي:

  • SPACE_NAME: رقم التعريف من name الخاص بالمساحة يمكنك الحصول على المعرّف من خلال استدعاء الطريقة ListSpaces() أو من عنوان URL الخاص بالمساحة.
  • MEMBER_NAME: رقم التعريف من name الخاص بالاشتراك يمكنك الحصول على المعرّف من خلال استدعاء الطريقة ListMemberships() أو من نص الاستجابة الذي يتم عرضه بعد إنشاء عضوية بشكل غير متزامن باستخدام Chat API.
  • ROLE_NAME: الدور المعدَّل، ROLE_MANAGER

تعدّل واجهة Google Chat API العضوية المحدّدة إلى مالك مساحة وتعرض مثيلاً من Membership.

تغيير المالك إلى عضو (مصادقة المستخدم)

يستدعي المثال التالي Chat API باستخدام مصادقة المستخدم لتحويل مالك المساحة إلى عضو عادي في المساحة من خلال تحديد role كـ ROLE_MEMBER:

Node.js

chat/client-libraries/cloud/update-membership-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships',
];

// This sample shows how to update a membership with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME',
    },
    updateMask: {
      // The field paths to update.
      paths: ['role'],
    },
  };

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

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

await main();

لتشغيل العيّنة، استبدِل ما يلي:

  • SPACE_NAME: رقم التعريف من name الخاص بالمساحة يمكنك الحصول على المعرّف من خلال استدعاء الطريقة ListSpaces() أو من عنوان URL الخاص بالمساحة.
  • MEMBER_NAME: رقم التعريف من name الخاص بالاشتراك يمكنك الحصول على المعرّف من خلال استدعاء الطريقة ListMemberships() أو من نص الاستجابة الذي يتم عرضه بعد إنشاء عضوية بشكل غير متزامن باستخدام Chat API.
  • ROLE_NAME: الدور المعدَّل، ROLE_MEMBER

تعدّل واجهة Google Chat API العضوية المحدّدة إلى مالك مساحة وتعرض مثيلاً من Membership.

تغيير دور عضو إلى مالك (المصادقة في تطبيق Chat)

تتطلّب مصادقة التطبيق الحصول على موافقة المشرف لمرة واحدة.

كتابة نص برمجي يستدعي Chat API

يستدعي المثال التالي Chat API باستخدام مصادقة التطبيق لتحويل عضو عادي في المساحة إلى مالك المساحة من خلال تحديد role كـ ROLE_MANAGER في body الذي يحدّد سمات العضوية المعدَّلة:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_membership_update_to_owner_app.py.
  2. أدرِج الرمز التالي في chat_membership_update_to_owner_app.py:

    from google.oauth2 import service_account
    from apiclient.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.app.memberships"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then updates a specified space member to change
        it from a regular member to a space owner.
        '''
    
        # 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().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_to_owner_app.py

تغيير دور المالك إلى عضو (المصادقة في تطبيق Chat)

تتطلّب مصادقة التطبيق الحصول على موافقة المشرف لمرة واحدة.

كتابة نص برمجي يستدعي Chat API

يستدعي المثال التالي Chat API باستخدام مصادقة التطبيق لتحويل مالك المساحة إلى عضو عادي في المساحة من خلال تحديد role كـ ROLE_MEMBER في body الذي يحدّد سمات العضوية المعدَّلة:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_membership_update_to_member_app.py.
  2. أدرِج الرمز التالي في chat_membership_update_to_member_app.py:

    from google.oauth2 import service_account
    from apiclient.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.app.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates a specified space owner to change
        it to a regular member.
        '''
    
        # 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().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_to_member_app.py

تعديل العضويات بصفتك مشرف Google Workspace

إذا كنت مشرفًا في Google Workspace، يمكنك استدعاء طريقة update() لتعديل عضويات أي مساحة في مؤسستك على Google Workspace.

لاستدعاء هذه الطريقة بصفتك مشرفًا في Google Workspace، اتّبِع الخطوات التالية:

  • استدعِ الطريقة باستخدام مصادقة المستخدم، وحدِّد نطاق تفويض يتيح استدعاء الطريقة باستخدام امتيازات المشرف.
  • في طلبك، حدِّد مَعلمة طلب البحث useAdminAccess على true.

لمزيد من المعلومات والأمثلة، يُرجى الاطّلاع على مقالة إدارة مساحات Google Chat بصفتك مشرف Google Workspace.