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

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

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

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

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

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

Python

Node.js

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

للعثور على رسالة مباشرة في Google Chat، أدخِل ما يلي: طلبك:

  • باستخدام مصادقة التطبيق، حدِّد chat.bot نطاق التفويض مع مصادقة المستخدم، تحديد نطاق تفويض chat.spaces.readonly أو chat.spaces.
  • عليك استدعاء طريقة findDirectMessage على User المورد، مع اجتياز name للمستخدم الآخر في الرسالة المباشرة للعودة إليه مع مصادقة المستخدم، تُنتج هذه الطريقة رسالة مباشرة بين المستخدم المتصل والمستخدم المحدّد. مع مصادقة التطبيق، بهذه الطريقة عرض رسالة مباشرة بين تطبيق الاتصال والمستخدم المحدّد
  • لإضافة مستخدم بشري كعضو في المساحة، حدِّد السمة users/{user}، حيث {user} هي إما {person_id} person من People API أو من معرّف user في واجهة برمجة التطبيقات للدليل. على سبيل المثال، إذا كان شخص واجهة برمجة تطبيقات "الأشخاص" resourceName هي 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 مثيلاً من 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 مثيلاً من Space الذي يعرض بالتفصيل الرسالة المباشرة المحدّدة