إدراج أحداث من مساحة في Google Chat

يوضّح هذا الدليل كيفية استخدام طريقة list() في المورد SpaceEvent ضِمن Google Chat API لعرض التغييرات التي تم إجراؤها على الموارد في مساحة.

يمثّل مرجع SpaceEvent تغييرًا في المساحة المستهدَفة، بما في ذلك المراجع الفرعية للمساحة، مثل الرسائل والتفاعلات والعضويات. لمزيد من المعلومات حول قائمة أنواع الأحداث وحِزم بيانات الأحداث المتوافقة، اطّلِع على الحقلَين eventType وpayload في مستندات مرجع المورد SpaceEvent.

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

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

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

Node.js

Python

عرض أحداث المساحة (مصادقة المستخدم)

لعرض أحداث المساحة من مساحة في Chat، مرِّر ما يلي في طلبك:

  • حدِّد نطاق تفويض واحدًا أو أكثر لتوفير الدعم لكل نوع من أنواع الأحداث في طلبك. من أفضل الممارسات اختيار النطاق الأكثر تقييدًا الذي يتيح لتطبيقك العمل. لاختيار نطاق، يُرجى الاطّلاع على نظرة عامة على المصادقة والتفويض.

  • استدعِ طريقة ListSpaceEvents() ، مع تمرير filter لأنواع الأحداث المطلوب إدراجها. يجب تحديد نوع حدث واحد على الأقل، ويمكنك أيضًا الفلترة حسب التاريخ. للاطّلاع على قائمة بأنواع الأحداث المتوافقة، يُرجى الرجوع إلى حقل eventType في مرجع SpaceEvent الموارد.

يعرض المثال التالي أحداثًا حول العضويات والرسائل الجديدة في مساحة:

Node.js

chat/client-libraries/cloud/list-space-events-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

// Authorization scopes based on the event types
const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships.readonly',
  'https://www.googleapis.com/auth/chat.messages.readonly',
];

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

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    parent: 'spaces/SPACE_NAME',
    // A required filter. Filters events about new memberships and messages.
    filter:
      'eventTypes:"google.workspace.chat.membership.v1.created" OR eventTypes:"google.workspace.chat.message.v1.created"',
  };

  // Make the request
  const pageResult = chatClient.listSpaceEventsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

await main();

لتشغيل هذا النموذج، استبدِل SPACE_NAME برقم التعريف من مساحة name. يمكنك الحصول على المعرّف من خلال استدعاء الطريقة ListSpaces() أو من عنوان URL الخاص بالمساحة.

تعرض Chat API قائمة مقسمة إلى صفحات بأحداث المساحة تتعلّق بالعضويات والرسائل الجديدة.

عرض قائمة بأحداث المساحة (مصادقة تطبيق Chat)

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

لعرض أحداث المساحة من مساحة تتضمّن مصادقة التطبيق وChat REST API، عليك تضمين ما يلي في طلبك:

  • حدِّد نطاق تفويض واحدًا أو أكثر لتوفير الدعم لكل نوع من أنواع الأحداث في طلبك. من أفضل الممارسات اختيار النطاق الأكثر تقييدًا الذي يتيح لتطبيقك العمل. لمزيد من المعلومات عن اختيار نطاق، يُرجى الاطّلاع على نظرة عامة على المصادقة والتفويض.
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
  • استدعِ الإجراء list على المورد spaceEvents.
  • مرِّر name المساحة لعرض الرسائل منها.
  • مرِّر filter للاستعلام عن أنواع أحداث معيّنة.

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

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

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

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

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

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

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

في ما يلي كيفية إدراج أحداث المساحة باستخدام مصادقة التطبيق وChat REST API:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # Set authorization scopes based on the
    # event type. For example, if you are getting a space event
    # about a new membership, use the `chat.app.memberships.readonly` scope.
    #
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then lists space events from a specified space.
        '''
    
        # 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().spaceEvents().list(
    
            # The space to list events from.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE_NAME',
    
            # A required filter. Filters events by event type.
            #
            # Update this filter to match your requirements.
            filter='eventTypes:"google.workspace.chat.message.v1.created"'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدِل ما يلي:

    • API_KEY: مفتاح واجهة برمجة التطبيقات الذي أنشأته لإنشاء نقطة نهاية الخدمة لواجهة Chat API.
    • SPACE_NAME: اسم مساحة، ويمكنك الحصول عليه من خلال الطريقة spaces.list في Chat API، أو من عنوان URL الخاص بمساحة.
  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_spaceevents_list_app.py

تعرض Chat API قائمة مقسمة إلى صفحات بأحداث المساحة تتعلّق بالعضويات والرسائل الجديدة.