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

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

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

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

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

Node.js

تعديل اشتراك

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

  • حدِّد نطاق التفويض:
  • استدعِ الطريقة UpdateMembership().
  • نقْل membership كمثيل من Membership مع ما يلي:
    • الحقل name الذي تم ضبطه على العضوية المطلوب تعديلها، والذي يتضمّن معرّف المساحة ومعرّف العضو
    • يتم ضبط حقول الاشتراك التي سيتم تعديلها على القيم الجديدة.
  • انتقِل إلى updateMask لتحديد جوانب الاشتراك المراد تعديلها، وتتضمّن ما يلي:
    • role: دور المستخدم ضمن مساحة Chat، والذي يحدّد إجراءاته المسموح بها في المساحة القيم المتاحة:
      • ROLE_MEMBER: عضو في المساحة لدى المستخدم أذونات أساسية، مثل إرسال الرسائل إلى المساحة. في المحادثات بين شخصين والمحادثات الجماعية بدون اسم، يكون لكل شخص هذا الدور.
      • 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);
}

main().catch(console.error);

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

  • 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);
}

main().catch(console.error);

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

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

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

منح عضو عادي في المساحة دور مدير مساحة كتطبيق Chat

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

إنشاء مفتاح واجهة برمجة التطبيقات

لاستدعاء طريقة واجهة برمجة التطبيقات في "معاينة المطوّر"، يجب استخدام إصدار غير متاح للجميع من "معاينة المطوّر" لمستند استكشاف واجهة برمجة التطبيقات. لمصادقة الطلب، يجب إدخال مفتاح واجهة برمجة التطبيقات.

لإنشاء مفتاح واجهة برمجة التطبيقات، افتح مشروع تطبيقك على Google Cloud واتّبِع الخطوات التالية:

  1. في Google Cloud Console، انتقِل إلى القائمة > واجهات برمجة التطبيقات والخدمات > بيانات الاعتماد.

    الانتقال إلى "بيانات الاعتماد"

  2. انقر على إنشاء بيانات اعتماد > مفتاح واجهة برمجة التطبيقات.
  3. يتم عرض مفتاح واجهة برمجة التطبيقات الجديد.
    • انقر على رمز النسخ لنسخ مفتاح واجهة برمجة التطبيقات لاستخدامه في رمز تطبيقك. يمكن أيضًا العثور على مفتاح واجهة برمجة التطبيقات في قسم "مفاتيح واجهة برمجة التطبيقات" ضمن بيانات اعتماد مشروعك.
    • انقر على تقييد المفتاح لتعديل الإعدادات المتقدّمة والحد من استخدام مفتاح واجهة برمجة التطبيقات. لمزيد من التفاصيل، يُرجى الاطّلاع على فرض قيود على مفاتيح واجهة برمجة التطبيقات.

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

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

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_membership_update_to_manager_app.py.
  2. أدرِج الرمز التالي في chat_membership_update_to_manager_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 manager.
        '''
    
        # 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().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. في الرمز، استبدِل ما يلي:

    • API_KEY: مفتاح واجهة برمجة التطبيقات الذي أنشأته لإنشاء نقطة نهاية الخدمة لواجهة برمجة التطبيقات Chat API.

    • SPACE: اسم مساحة يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL للمساحة.

    • MEMBERSHIP: اسم اشتراك، والذي يمكنك الحصول عليه من spaces.members.list method في Chat API.

  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_membership_update_to_manager_app.py

منح مدير مساحة دور عضو عادي كتطبيق Chat

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

إنشاء مفتاح واجهة برمجة التطبيقات

لاستدعاء طريقة واجهة برمجة التطبيقات في "معاينة المطوّر"، يجب استخدام إصدار غير متاح للجميع من "معاينة المطوّر" لمستند استكشاف واجهة برمجة التطبيقات. لمصادقة الطلب، يجب إدخال مفتاح واجهة برمجة التطبيقات.

لإنشاء مفتاح واجهة برمجة التطبيقات، افتح مشروع تطبيقك على Google Cloud واتّبِع الخطوات التالية:

  1. في وحدة تحكّم Google Cloud، انتقِل إلى رمز القائمة > واجهات برمجة التطبيقات والخدمات > بيانات الاعتماد.

    الانتقال إلى "بيانات الاعتماد"

  2. انقر على إنشاء بيانات اعتماد > مفتاح واجهة برمجة التطبيقات.
  3. يتم عرض مفتاح واجهة برمجة التطبيقات الجديد.
    • انقر على رمز النسخ لنسخ مفتاح واجهة برمجة التطبيقات لاستخدامه في رمز تطبيقك. يمكن أيضًا العثور على مفتاح واجهة برمجة التطبيقات في قسم "مفاتيح واجهة برمجة التطبيقات" ضمن بيانات اعتماد مشروعك.
    • انقر على تقييد المفتاح لتعديل الإعدادات المتقدّمة والحد من استخدام مفتاح واجهة برمجة التطبيقات. لمزيد من التفاصيل، يُرجى الاطّلاع على فرض قيود على مفاتيح واجهة برمجة التطبيقات.

كتابة نص برمجي يستدعي 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 member to change
        it from a regular member to a space manager.
        '''
    
        # 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().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. في الرمز، استبدل ما يلي:

    • API_KEY: مفتاح واجهة برمجة التطبيقات الذي أنشأته لإنشاء نقطة نهاية الخدمة لواجهة برمجة التطبيقات Chat API.

    • SPACE: اسم مساحة، والذي يمكنك الحصول عليه من spaces.list method في 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.