تعديل مساحة

يوضّح هذا الدليل طريقة استخدام طريقة patch على مورد Space لواجهة برمجة تطبيقات Google Chat لتعديل مساحة. عدِّل مساحة لتغيير السمات المتعلّقة بها، مثل الاسم المعروض والوصف والإرشادات التي تخصّ المستخدم.

يمثّل المورد Space مكانًا يمكن فيه للمستخدمين وتطبيقات Chat إرسال الرسائل ومشاركة الملفات والتعاون. تتوفّر عدة أنواع من المساحات:

  • الرسائل المباشرة هي محادثات بين مستخدمَين أو مستخدم وتطبيق في Chat.
  • المحادثات الجماعية هي محادثات بين ثلاثة مستخدمين أو أكثر وتطبيقات Chat.
  • المساحات المُسمّاة هي أماكن دائمة يمكن للمستخدمين من خلالها إرسال الرسائل ومشاركة الملفات والتعاون معًا.

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

Python

  • Python 3.6 أو أحدث
  • إنّ أداة إدارة الحِزم pip
  • أحدث مكتبات عملاء Google للغة Python. لتثبيتها أو تحديثها، شغّل الأمر التالي في واجهة سطر الأوامر:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • مشروع على Google Cloud تم فيه تفعيل Google Chat API وضبطه لمعرفة الخطوات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat.
  • تم ضبط التفويض لتطبيق Chat. يتطلب تعديل المساحة مصادقة المستخدم باستخدام نطاق التفويض chat.spaces.

Node.js

  • Node.js وnpm
  • أحدث مكتبات عملاء Google لنظام Node.js. ولتثبيتها، شغِّل الأمر التالي في واجهة سطر الأوامر:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • مشروع على Google Cloud تم فيه تفعيل Google Chat API وضبطه لمعرفة الخطوات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat.
  • تم ضبط التفويض لتطبيق Chat. يتطلب تعديل المساحة مصادقة المستخدم باستخدام نطاق التفويض chat.spaces.

تعديل مساحة

لتعديل مساحة حالية في Google Chat، يُرجى تقديم ما يلي في طلبك:

  • حدِّد نطاق تفويض chat.spaces.
  • يمكنك استدعاء طريقة patch على المورد Space وإدخال name المساحة المطلوب تعديلها، بالإضافة إلى updateMask وbody الذي يحدّد سمات المساحة المعدَّلة.
  • تحدّد السمة updateMask جوانب المساحة المطلوب تعديلها، وتتضمّن ما يلي:
    • displayName: تعديل اسم المساحة الذي يمكن للمستخدمين قراءته في واجهة مستخدم Google Chat تتيح هذه الميزة فقط تغيير الاسم المعروض للمساحة من النوع SPACE، أو عند تضمين القناع spaceType أيضًا لتغيير نوع المساحة GROUP_CHAT إلى SPACE. تؤدي محاولة تعديل الاسم المعروض لـ GROUP_CHAT أو مسافة DIRECT_MESSAGE إلى ظهور خطأ غير صالح في الوسيطة.
    • spaceType: تُعدِّل نوع المساحة، ولكن تتيح فقط تغيير نوع المساحة GROUP_CHAT إلى SPACE. ضمِّن displayName مع spaceType في قناع التحديث وتأكَّد من أنّ المساحة المحددة لا تتضمن displayName ونوع مساحة SPACE. إذا كانت المساحة الحالية تحتوي على النوع SPACE، بما في ذلك القناع spaceType والنوع SPACE في المساحة المحددة عند تعديل الاسم المعروض، يكون ذلك اختياريًا . تؤدي محاولة تحديث نوع المساحة بطرق أخرى إلى حدوث خطأ غير صالح في الوسيطة.
    • spaceDetails: تفاصيل عن المساحة، بما في ذلك الوصف والقواعد
    • spaceHistoryState: توفّر تفعيل السجلّ أو إيقافه للمساحة في حال سمحت المؤسسة للمستخدمين بتغيير إعدادات السجلّ. الأحداث المتنافية مع جميع مسارات الحقول الأخرى

في ما يلي كيفية تعديل spaceDetails لمساحة حالية:

Python

  1. في دليل العمل، أنشِئ ملفًا باسم chat_space_update.py.
  2. ضمِّن الرمز التالي في chat_space_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.spaces"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates the specified space description and guidelines.
        '''
    
        # 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().patch(
    
          # The space to update, and the updated space details.
          #
          # Replace {space} with a space name.
          # Obtain the space name from the spaces resource of Chat API,
          # or from a space's URL.
          name='spaces/SPACE',
          updateMask='spaceDetails',
          body={
    
            'spaceDetails': {
              'description': 'This description was updated with Chat API!',
              'guidelines': 'These guidelines were updated with Chat API!'
            }
    
          }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدِل SPACE باسم مساحة، الذي يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL الخاص بالمساحة.

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

    python3 chat_space_update.py
    

Node.js

  1. في دليل العمل، أنشِئ ملفًا باسم update-space.js.
  2. ضمِّن الرمز التالي في update-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Updates a Chat space with the description and guidelines.
    * @return {!Promise<!Object>}
    */
    async function updateSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.patch({
        name: 'spaces/SPACE',
        updateMask: 'spaceDetails',
        requestBody: {
          spaceDetails: {
            description: 'This description was updated with Chat API!',
            guidelines: 'These guidelines were updated with Chat API!'
          },
        }
      });
    }
    
    updateSpace().then(console.log);
    
  3. في الرمز، استبدِل SPACE باسم مساحة، الذي يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL الخاص بالمساحة.

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

    node update-space.js
    

تعرض Google Chat API مثيلاً لمورد Space الذي يعرض التحديثات.