البحث عن مساحة رسالة مباشرة (DM)

يوضّح هذا الدليل كيفية استخدام طريقة findDirectMessage على مورد Space لواجهة برمجة تطبيقات Google Chat للحصول على تفاصيل حول مساحة الرسائل المباشرة (DM).

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

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

تسمح المصادقة باستخدام مصادقة التطبيقات لتطبيق Chat بالحصول على الرسائل المباشرة التي يمكن لتطبيق Chat الوصول إليها في Google Chat (مثل الرسائل المباشرة التي يكون عضوًا فيها). تؤدي المصادقة باستخدام مصادقة المستخدم إلى عرض الرسائل المباشرة التي يمكن للمستخدم الذي تمت المصادقة الوصول إليها.

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

Python

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

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

Node.js

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

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

العثور على رسالة مباشرة

للعثور على رسالة مباشرة في Google Chat، ضَع ما يلي في طلبك:

  • باستخدام مصادقة التطبيق، حدِّد نطاق تفويض chat.bot. باستخدام مصادقة المستخدم، حدِّد نطاق التفويض chat.spaces.readonly أو chat.spaces.
  • يمكنك استدعاء طريقة findDirectMessage على المورد User، وإرسال name للمستخدم الآخر إلى الرسالة المباشرة للعودة. باستخدام مصادقة المستخدم، تعرض هذه الطريقة رسالة مباشرة بين المستخدم المتصل والمستخدم المحدَّد. باستخدام مصادقة التطبيقات، تعرض هذه الطريقة رسالة مباشرة بين تطبيق الاتصال والمستخدم المحدّد.
  • لإضافة مستخدم كعضو في مساحة، حدِّد users/{user} حيث يشير {user} إلى {person_id} person من People API أو رقم تعريف user في Directory API. على سبيل المثال، إذا كان اسم المستخدم resourceName في People API هو people/123456789، يمكنك إضافة المستخدم إلى المساحة من خلال تضمين اشتراك في users/123456789 على أنّه member.name.

العثور على رسالة مباشرة تتضمّن مصادقة المستخدم

إليك كيفية العثور على رسالة مباشرة باستخدام مصادقة المستخدم:

Python

  1. في دليل العمل، أنشِئ ملفًا باسم chat_space_find_dm_user.py.
  2. ضمِّن الرمز التالي في chat_space_find_dm_user.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.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then returns details about a specified DM.
        '''
    
        # 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().findDirectMessage(
    
              # The other user in the direct message (DM) to return.
              #
              # Replace USER with a user name.
              name='users/USER'
    
          ).execute()
    
        # Prints details about the direct message.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدِل USER بـ name الخاصة بـ User في Google Chat.

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

    python3 chat_space_find_dm_user.py
    

Node.js

  1. في دليل العمل، أنشِئ ملفًا باسم find-direct-message-space.js.

  2. ضمِّن الرمز التالي في find-direct-message-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. في الرمز، استبدِل USER بـ name الخاصة بـ User في Google Chat.

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

    node find-direct-message-space.js
    

تعرِض Chat API مثيل Space الذي يوضّح الرسالة المباشرة المحدّدة.

العثور على رسالة مباشرة باستخدام مصادقة التطبيق

في ما يلي كيفية العثور على رسالة مباشرة باستخدام مصادقة التطبيق:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().findDirectMessage(
    
        # The other user in the direct message (DM) to return.
        #
        # Replace USER with a user name.
        name='users/USER'
    
    ).execute()
    
    print(result)
    
  3. في الرمز، استبدِل USER بـ name الخاصة بـ User في Google Chat.

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

    python3 chat_space_find_dm_app.py
    

Node.js

  1. في دليل العمل، أنشِئ ملفًا باسم app-find-direct-message-space.js.

  2. ضمِّن الرمز التالي في app-find-direct-message-space.js:

    const chat = require('@googleapis/chat');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.bot',
      ];
    
      const auth = new chat.auth.GoogleAuth({
        scopes,
        keyFilename: 'credentials.json',
      });
    
      const authClient = await auth.getClient();
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. في الرمز، استبدِل USER بـ name الخاصة بـ User في Google Chat.

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

    node app-find-direct-message-space.js
    

تعرِض Chat API مثيل Space الذي يوضّح الرسالة المباشرة المحدَّدة.