الحصول على تفاصيل عن حدث في مساحة Google Chat

يوضّح هذا الدليل كيفية استخدام طريقة get() في مورد SpaceEvent ضِمن Google Chat API للحصول على تفاصيل حول حدث من مساحة Google Chat.

يمثّل المورد SpaceEvent تغييرًا في مساحة أو مواردها الفرعية، مثل الرسائل، والتفاعلات، والاشتراكات. للتعرّف على أنواع الأحداث المتوافقة، يُرجى الاطّلاع على الحقل eventType في مستندات مرجع المورد SpaceEvent.

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

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

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

Node.js

Python

الحصول على تفاصيل حول حدث في مساحة (مصادقة المستخدم)

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

  • تحديد نطاق تفويض يتيح نوع الحدث في طلبك من أفضل الممارسات اختيار النطاق الأكثر تقييدًا الذي لا يزال يسمح لتطبيقك بالعمل
  • استدعاء الطريقة GetSpaceEvent() ، مع تمرير name لحدث المساحة المطلوب الحصول عليه

يحصل المثال التالي على حدث في مساحة:

Node.js

يستخدم نموذج عينة تعليمات برمجية Node.js هذا Chat RPC API.

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

// Replace SCOPE_NAME here with an authorization scope based on the event type
const USER_AUTH_OAUTH_SCOPES = ['SCOPE_NAME'];

// This sample shows how to get space event 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 and SPACE_EVENT_NAME here
    name: 'spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
  };

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

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

await main();

لتشغيل هذا النموذج، يُرجى استبدال ما يلي:

  • SCOPE_NAME: نطاق تفويض استنادًا إلى نوع الحدث على سبيل المثال، إذا كنت تحصل على حدث في مساحة بشأن اشتراك جديد، استخدِم الن0/} النطاق، بتنسيق https://www.googleapis.com/auth/chat.memberships.readonly.chat.memberships.readonly يمكنك الحصول على نوع الحدث من الـ ListSpaceEvents() طريقة. لمعرفة كيفية استخدام هذه الطريقة، يُرجى الاطّلاع على مقالة عرض قائمة بالأحداث من مساحة.
  • SPACE_NAME: المعرّف من name للمساحة يمكنك الحصول على المعرّف من خلال استدعاء الـ ListSpaces() طريقة أو من عنوان URL للمساحة.
  • SPACE_EVENT_NAME: المعرّف من name لحدث المساحة. يمكنك الحصول على المعرّف من الـ ListSpaceEvents() طريقة. لمعرفة كيفية استخدام هذه الطريقة، يُرجى الاطّلاع على مقالة عرض قائمة بالأحداث من مساحة.

تعرض Chat API مثيلاً من SpaceEvent يتضمّن تفاصيل حول الحدث.

الحصول على تفاصيل حول حدث في مساحة (مصادقة تطبيق Chat)

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

للحصول على تفاصيل حول حدث في مساحة من مساحة باستخدام مصادقة التطبيق وChat REST API، يُرجى تمرير ما يلي في طلبك:

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

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

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

Python

يستخدم نموذج رمز Python هذا Chat REST API.

  1. في دليل العمل، أنشئ ملفًا باسم chat_spaceevents_get_app.py.
  2. أدرِج الرمز التالي في chat_spaceevents_get_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` 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.memberships.readonly",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces",
              "https://www.googleapis.com/auth/chat.app.spaces.readonly"]
    
    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)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().spaceEvents().get(
    
            # The space to get event details 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.
            name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدِل ما يلي:

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

    python3 chat_spaceevents_get_app.py

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