الاشتراك في أحداث Google Chat

تصف هذه الصفحة أحداث Google Chat التي يمكن لتطبيق Google Chat الاشتراك فيها باستخدام Google Workspace Events API. بعد تحديد أنواع الأحداث التي تحتاج إليها، يمكنك إنشاء اشتراك لبدء تلقّي الأحداث من Google Chat.

بالإضافة إلى الاشتراك في الأحداث، يمكنك أيضًا البحث عن الأحداث من خلال طلب بيانات Chat API. يتيح لك الاتصال بواجهة برمجة التطبيقات Chat API retrieving events على أساس دوري، أو متابعة events التي ربما فاتك الحصول عليها من اشتراك بسبب انقطاع الخدمة. للتعرّف على الطُرق التي يمكنك من خلالها تلقّي أحداث Chat والردّ عليها، اطّلِع على العمل مع الأحداث من Google Chat في مستندات Chat.

أحداث Chat المتوافقة

تتيح لك اشتراكات Google Workspace تلقّي أحداث حول الأنواع التالية من التغييرات في Chat:

  • الرسائل الجديدة أو المعدَّلة أو المحذوفة في المساحة
  • تفاعلات جديدة أو تمت إزالتها في رسالة
  • الأعضاء الجدد أو المعدَّلين أو الذين تمّت إزالتهم في المساحة
  • التغييرات في المساحة التي اشتركت فيها، مثل اسم المساحة أو وصفها المعدَّلَين

الموارد التي يمكنك رصدها بحثًا عن الأحداث

لتلقّي الأحداث، عليك تحديد مورد Chat للتتبّع، وهو ما يُعرف باسم المورد المستهدَف للاشتراك.

تتوافق واجهة برمجة التطبيقات Google Workspace Events API مع الموارد المستهدَفة التالية لتطبيق Chat:

المورد المستهدَف التنسيق القيود
مسافة

//chat.googleapis.com/spaces/SPACE

حيث يكون SPACE هو المعرّف في اسم المورد لمورد Chat API‏ space. يمكنك الحصول على المعرّف من عنوان URL للمساحة أو باستخدام الإجراء spaces.list().

يجب أن يكون مستخدم Chat الذي يفوّض الاشتراك عضوًا في المساحة من خلال حسابه على Google Workspace أو Google.
جميع المساحات الخاصة بمستخدم

//chat.googleapis.com/spaces/-

لا يتلقّى الاشتراك سوى الأحداث للمساحات التي يكون فيها المستخدم عضوًا من خلال حسابه على Google Workspace أو Google.
المستخدم

//cloudidentity.googleapis.com/users/USER

حيث يكون USER هو المعرّف في اسم المورد لمورد Chat API‏ user. لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة تحديد مستخدمي Google Chat وتحديدهم.

لا يتلقّى الاشتراك سوى الأحداث المتعلّقة بالمستخدم الذي أذن بالاشتراك. لا يمكن للمستخدم تفويض اشتراك نيابةً عن مستخدمين آخرين.

أنواع الأحداث لإنشاء الاشتراكات

عند إنشاء اشتراك، يمكنك استخدام الحقل eventTypes[] لتحديد أنواع الأحداث التي تريد تلقّيها. يتم تنسيق أنواع الأحداث وفقًا لمواصفات CloudEvents، مثل google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

على سبيل المثال، لتلقّي أحداث عن المستخدمين الذين ينضمون إلى مساحة Chat، يمكنك تحديد المساحة كمورد مستهدَف ونوع الحدث على أنّه google.workspace.chat.membership.v1.created. لتلقّي أحداث عن أحد المستخدِمين الذين ينضمون إلى أي مساحة، يمكنك تحديد المستخدِم كمصدر مستهدَف ونوع الحدث على أنّه google.workspace.chat.membership.v1.created. لمزيد من المعلومات عن طريقة عمل الأحداث، اطّلِع على بنية أحداث Google Workspace.

يعرض الجدول التالي أنواع الأحداث المتاحة للاشتراكات في المساحات والاشتراكات في القنوات. للتعرّف على استثناءات العوامل التي تؤدي إلى بدء حدث، اطّلِع على القيود.

نوع الحدث التنسيق بيانات المرجع
الاشتراكات في المساحات  
يتم نشر رسالة.

google.workspace.chat.message.v1.created

space.message

تم تعديل رسالة.

google.workspace.chat.message.v1.updated

space.message

تم حذف رسالة.

google.workspace.chat.message.v1.deleted

space.message

يتم إنشاء تفاعل.

google.workspace.chat.reaction.v1.created

space.message.reaction

تم حذف تفاعل.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

تتم إضافة عضو إلى المساحة.

google.workspace.chat.membership.v1.created

space.membership

تم تعديل دور أحد الأعضاء في المساحة.

google.workspace.chat.membership.v1.updated

space.membership

تتم إزالة عضو من المساحة.

google.workspace.chat.membership.v1.deleted

space.membership

تم تعديل المساحة.

google.workspace.chat.space.v1.updated

space

يتم حذف المساحة.

google.workspace.chat.space.v1.deleted

space

الاشتراكات للمستخدمين  
يصبح المستخدم عضوًا في مساحة.

لا يؤدي كلّ الأعضاء الجدد إلى بدء الأحداث. لمعرفة التفاصيل، يُرجى الاطّلاع على القيود.

google.workspace.chat.membership.v1.created

space.membership

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

google.workspace.chat.membership.v1.updated

space.membership

تتم إزالة المستخدم كعضو مباشر في مساحة.

google.workspace.chat.membership.v1.deleted

space.membership

أنواع الأحداث المجمّعة (الإخراج فقط)

بالإضافة إلى تلقّي أنواع الأحداث التي تشترك فيها، قد يتلقّى تطبيق Chat أيضًا أحداثًا مجمّعة. الحدث المجمّع هو حدث يمثّل العديد من الأحداث من النوع نفسه التي تحدث في مدّة زمنية قصيرة. تحتوي الحمولة لحدث مجمّع على قائمة بكل موارد العميل التي تم تغييرها.

على سبيل المثال، إذا أضاف مستخدم 20 مستخدمًا إلى مساحة في الوقت نفسه، قد يتلقّى تطبيق Chat حدثًا مجمّعًا (google.workspace.chat.membership.v1.batchCreated). تحتوي الحمولة على الحدث على قائمة بجميع موارد Membership الجديدة التي تم إنشاؤها عندماأضاف المستخدم الأعضاء إلى المساحة.

تتلقّى حدث دفعة لأي نوع حدث تشترك فيه، لذا لست بحاجة إلى تحديد أحداث الدفعات عند إنشاء اشتراك. على سبيل المثال، إذا اشتركت في التفاعلات الجديدة (google.workspace.chat.reaction.v1.created)، سيتم تلقائيًا ضبط إعدادات تطبيق Chat لتلقّي أحداث التفاعلات (google.workspace.chat.reaction.v1.batchCreated) بشكل مجمّع.

يعرض الجدول التالي أحداث الحِزم المحتمَلة للاشتراك:

نوع الحدث المجمّع التنسيق
يتم نشر رسائل متعددة.

google.workspace.chat.message.v1.batchCreated

يتم تعديل رسائل متعددة.

google.workspace.chat.message.v1.batchUpdated

يتم حذف رسائل متعددة.

google.workspace.chat.message.v1.batchDeleted

يتم إنشاء تفاعلات متعددة.

google.workspace.chat.reaction.v1.batchCreated

يتم حذف تفاعلات متعددة.

google.workspace.chat.reaction.v1.batchDeleted

تمت إضافة عدة أعضاء إلى المساحة التي تم الاشتراك فيها، أو تمت إضافة المستخدم المشترك إلى مساحات متعددة.

google.workspace.chat.membership.v1.batchCreated

يتم تعديل العضويات المتعددة في المساحة التي تم الاشتراك فيها أو للمستخدم المشترك.

google.workspace.chat.membership.v1.batchUpdated

تمّت إزالة عدة مشتركين من المساحة المشترَكة، أو تمّت إزالة المستخدم المشترِك من مساحات متعدّدة.

google.workspace.chat.membership.v1.batchDeleted

تتضمّن المساحة تعديلات متعددة.

google.workspace.chat.space.v1.batchUpdated

بيانات الأحداث

يصف هذا القسم بيانات الأحداث وأمثلة على الحمولات للأحداث في Chat.

عندما يتلقّى اشتراكك في Google Workspace حدثًا من Chat، يحتوي الحقل data على الحمولة للحدث. تحتوي هذه الحمولة على معلومات عن مورد Google Workspace الذي تغيّر. على سبيل المثال، إذا اشتركت في أحداث الاشتراك في مساحة، تحتوي الحمولة لهذه الأحداث على معلومات حول موارد spaces.membership التي تغيّرت.

بيانات المورد في الحمولة الخاصة بالحدث

عند إنشاء اشتراك، يمكنك تحديد ما إذا كنت تريد أن تشمل الحمولة تفاصيل عن المورد أو اسم المورد فقط. على سبيل المثال، إذا كنت تريد تلقّي أحداث عن الأعضاء في إحدى مساحات Chat، يمكنك تحديد حقول مورد الاشتراك التي تريد تلقّيها في الحمولة البرمجية للحدث.

يقدّم الجدول التالي أمثلة على حِزم بيانات JSON لاشتراك في مساحة Chat spaces/AAAABBBBBB. لكل حدث يتلقّاه الاشتراك، تظهر الحمولة في حقل data للحدث:

مثال نوع الحدث حمولة JSON

ينشر مستخدم رسالة في المساحة نصّها "مرحبًا".

google.workspace.chat.message.v1.created

تتضمّن بيانات المورد
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD",
        "sender":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "createTime": "2023-09-07T21:37:36.260127Z",
        "text": "Hello world",
        "thread":
        {
            "name": "spaces/AAAABBBBBB/threads/EEEEEEEEEEEE"
        },
        "space":
        {
            "name": "spaces/AAAABBBBBB"
        },
        "argumentText": "Hello world"
    }
}
      
استبعاد بيانات الموارد
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD"
    }
}
      
يصبح المستخدم مدير مساحة.

google.workspace.chat.membership.v1.updated

تتضمّن بيانات المورد
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321",
        "state": "JOINED",
        "member":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "createTime": "1970-01-01T00:00:00Z",
        "role": "ROLE_MANAGER"
    }
}
      
استبعاد بيانات الموارد
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321"
    }
}
      
عدّل أحد المستخدمين وصف المساحة إلى "فريق المبيعات في Cymbal Labs". google.workspace.chat.space.v1.updated
تتضمّن بيانات المورد
{
    "space":
    {
        "name": "spaces/AAAABBBBBB",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      
استبعاد بيانات الموارد
{
    "space":
    {
        "name": "spaces/AAAABBBBBB"
    }
}
      
تمت إضافة مستخدمَين في Chat إلى المساحة في الوقت نفسه. google.workspace.chat.membership.v1.batchCreated
تتضمّن بيانات المورد
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321",
            "state": "JOINED",
            "member":
            {
                "name": "users/1234567890987654321",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/987654321234567890",
            "state": "JOINED",
            "member":
            {
                "name": "users/987654321234567890",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        }
    ]
}
      
استبعاد بيانات الموارد
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/98765432123456789019"
          }
        }
    ]
}
      
تفاعل مستخدم مع رسالة باستخدام الرمز التعبيري 😊. google.workspace.chat.reaction.v1.created
تتضمّن بيانات المورد
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
        "user":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      
حذف بيانات الموارد
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
    }
}
      
يتفاعل المستخدمون مع رسالة باستخدام رمزَي الإيموجي 😊 و😸. google.workspace.chat.reaction.v1.batchCreated
تتضمّن بيانات المورد
{
    "reactions": [
        {
          "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
            "user":
            {
                "name": "users/1234567890987654321",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😊"
            }
          }
        },
        {
          "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
            "user":
            {
                "name": "users/98765431234564321",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😸"
            }
          }
        }
    ]
}
      
حذف بيانات الموارد
{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
        },
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
        }
      }
    ]
}
      

القيود

  • بالنسبة إلى الاشتراكات في قنوات المستخدمين، لا يتم بدء الأحداث المتعلّقة بالمشتركين الجدد في الرسائل المباشرة أو المحادثات الجماعية بدون اسم (google.workspace.chat.membership.v1.created) إلا بعد نشر الرسالة الأولى.
  • لتلقّي أحداث الاشتراك الداعم، يجب أن يكون المستخدم عضوًا مباشرًا في المساحة. إذا تمت إضافة مستخدم أو تعديله أو إزالته بشكل غير مباشر إلى مساحة من خلال "مجموعة Google"، لن يتلقّى الاشتراك أحداث العضوية هذه. للتعرّف على آلية عمل العضويات في "مجموعة Google"، يُرجى الاطّلاع على القسم إضافة "مجموعة Google" إلى مساحة.