איך מחפשים צ'אטים אישיים (DM)

במדריך הזה מוסבר איך להשתמש בשיטה findDirectMessage במכשיר Space משאב של Google Chat API לקבלת פרטים על מרחבים משותפים בצ'אטים אישיים.

משאב אחד (Space) מייצג מקום שבו אנשים ואפליקציות Chat יכולים לשלוח הודעות, לשתף קבצים ולשתף פעולה. יש כמה סוגים של מרחבים משותפים:

  • צ'אטים ישירים הם שיחות בין שני משתמשים או משתמש, אפליקציה ל-Chat.
  • צ'אטים קבוצתיים הם שיחות בין שלושה משתמשים או יותר, אפליקציות צ'אט.
  • מרחבים עם שם הם מקומות קבועים שבהם אנשים שולחים הודעות, משתפים קבצים, ולשתף פעולה.

אימות באמצעות אימות אפליקציות מאפשרת לאפליקציית Chat לקבל צ'אטים אישיים לאפליקציית Chat יש גישה אל Google Chat (לדוגמה, צ'אטים אישיים). אימות באמצעות הפקודה user authentication מחזירה צ'אטים אישיים למשתמש מאומת יש גישה אליהם.

דרישות מוקדמות

Python

  • Python 3.6 ומעלה
  • הכלי לניהול חבילות pip
  • ספריות הלקוח העדכניות של Google. כדי להתקין או לעדכן אותם, מריצים את הפקודה הבאה בממשק שורת הפקודה:
    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    

Node.js

  • Node.js 14 ומעלה
  • ה-npm כלי לניהול חבילות
  • ספריות הלקוח העדכניות של Google. כדי להתקין או לעדכן אותם, מריצים את הפקודה הבאה בממשק שורת הפקודה:
    npm install @google-cloud/local-auth @googleapis/chat
    

איך מחפשים צ'אטים אישיים

כדי למצוא צ'אטים אישיים ב-Google Chat, צריך להעביר את הפרטים הבאים: הבקשה שלך:

  • באמצעות אימות אפליקציות, מציינים את היקף ההרשאה chat.bot. ב- אימות משתמש, לציין את היקף ההרשאה chat.spaces.readonly או chat.spaces.
  • קוראים לפונקציה אמצעי תשלום אחד (findDirectMessage) במשאב User, מעבירים את הפקודה name של המשתמש השני בצ'אט כדי לחזור. ב- אימות משתמש, השיטה הזו מחזירה צ'אט בין המשתמש שמתקשר למשתמש שצוין. ב- אימות אפליקציות, השיטה הזו מחזירה צ'אט בין אפליקציית השיחה לבין המשתמש שצוין.
  • כדי להוסיף משתמש אנושי למרחב המשותף, צריך לציין את users/{user}, כאשר {user} הוא הערך {person_id} של person מ-People API, או מהמזהה של user ב-Directory API. לדוגמה, אם המשתמש של People API הוא 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 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 עם פרטי הצ'אט שצוין.