Znajdowanie pokoju czatu

Z tego przewodnika dowiesz się, jak używać metody findDirectMessage na platformie Space w interfejsie Google Chat API, aby uzyskać szczegółowe informacje o pokoju czatu.

Space zasób to miejsce, w którym użytkownicy i aplikacje do obsługi czatu mogą wysyłać wiadomości, udostępniać pliki i współpracować. Jest kilka rodzajów pokoi:

  • Czaty to rozmowy między 2 użytkownikami lub użytkownikiem aplikacji do obsługi czatu.
  • Czaty grupowe to rozmowy między co najmniej 3 użytkownikami komunikatory;
  • Pokoje nazwane to trwałe miejsca, w których użytkownicy wysyłają wiadomości, udostępniają pliki i współpracę.

Uwierzytelnianie za pomocą uwierzytelnianie aplikacji pozwala aplikacji Google Chat otrzymywać wiadomości na czacie, Aplikacja Google Chat ma dostęp do w Google Chat (dotyczy to na przykład czatów, których jest członkiem). Uwierzytelnianie za pomocą User authentication (Uwierzytelnianie użytkowników) zwraca czaty uwierzytelniony użytkownik ma dostęp.

Wymagania wstępne

Python

Node.js

Znajdowanie czatu

Aby znaleźć czat w Google Chat, przekaż w Twoja prośba:

  • Przy użyciu uwierzytelniania aplikacji określ Zakres autoryzacji: chat.bot. Na uwierzytelnianie użytkownika, określ zakres autoryzacji chat.spaces.readonly lub chat.spaces.
  • Wywołaj funkcję Metoda findDirectMessage w User zasobie, przekazując name użytkownika na czacie. Na uwierzytelnianie użytkownika, ta metoda zwraca czat między użytkownikiem wywołującym a określonym. Na uwierzytelnianie aplikacji, ta metoda zwraca rozmowę na czacie między aplikacją do nawiązywania połączeń a określonym użytkownikiem.
  • Aby dodać użytkownika jako członka pokoju, wpisz users/{user}, gdzie {user} to {person_id} dla person z interfejsu People API lub identyfikator user w interfejsie Directory API. Jeśli na przykład osoba resourceName w interfejsie People API to people/123456789, możesz dodać użytkownika do pokoju, dodając z członkostwem users/123456789 jako member.name.

Znajdowanie czatu z uwierzytelnianiem użytkownika

Aby znaleźć czat z: uwierzytelnianie użytkownika:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_space_find_dm_user.py.
  2. Umieść w pliku chat_space_find_dm_user.py ten kod:

    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. W kodzie zastąp USER elementem name typu User w Google Chat.

  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_space_find_dm_user.py
    

Node.js

  1. W katalogu roboczym utwórz plik o nazwie find-direct-message-space.js

  2. Umieść w pliku find-direct-message-space.js ten kod:

    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. W kodzie zastąp USER elementem name typu User w Google Chat.

  4. W katalogu roboczym uruchom przykładowy kod:

    node find-direct-message-space.js
    

Interfejs Chat API zwraca instancję Space który zawiera szczegółowe informacje na temat danego czatu.

Znajdowanie czatu z uwierzytelnianiem w aplikacji

Aby znaleźć czat z: uwierzytelnianie aplikacji:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_space_find_dm_app.py.
  2. Umieść w pliku chat_space_find_dm_app.py ten kod:

    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. W kodzie zastąp USER elementem name typu User w Google Chat.

  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_space_find_dm_app.py
    

Node.js

  1. W katalogu roboczym utwórz plik o nazwie app-find-direct-message-space.js

  2. Umieść w pliku app-find-direct-message-space.js ten kod:

    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. W kodzie zastąp USER elementem name typu User w Google Chat.

  4. W katalogu roboczym uruchom przykładowy kod:

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

Interfejs Chat API zwraca instancję Space ze szczegółami podanego czatu.