الحصول على تفاصيل عن حدث في مساحة 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: نطاق تفويض يستند إلى نوع الحدث. على سبيل المثال، إذا كنت تتلقّى حدثًا في المساحة حول اشتراك جديد، استخدِم النطاق chat.memberships.readonly، بالتنسيق https://www.googleapis.com/auth/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.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
  • استدعِ الإجراء get على المورد spaceEvents.
  • مرِّر name المساحة التي تريد الحصول على تفاصيل الحدث منها.

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

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

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

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

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

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

كتابة نص برمجي يستدعي 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.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().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. في الرمز، استبدِل ما يلي:

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

    python3 chat_spaceevents_get_app.py

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