Aktualizowanie pokoju

Z tego przewodnika dowiesz się, jak używać metody patch na zasobie Space interfejsu Google Chat API do aktualizowania pokoju. Zaktualizuj pokój, aby zmienić jego atrybuty, takie jak widoczna dla użytkownika wyświetlana nazwa, opis i wytyczne.

Zasób Space wskazuje 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 typów pokoi:

  • Czaty to rozmowy między 2 użytkownikami lub użytkownikiem i aplikacją Google Chat.
  • Czaty grupowe to rozmowy między co najmniej 3 użytkownikami i aplikacjami Google Chat.
  • Pokoje nazwane to trwałe miejsca, w których użytkownicy wysyłają wiadomości, udostępniają pliki i współpracują.

Wymagania wstępne

Python

  • Python 3.6 lub nowszy
  • Narzędzie do zarządzania pakietami pip
  • Najnowsze biblioteki klienta Google dla języka Python. Aby je zainstalować lub zaktualizować, uruchom w interfejsie wiersza poleceń to polecenie:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Projekt Google Cloud z włączonym i skonfigurowanym interfejsem Google Chat API. Instrukcje znajdziesz w artykule Tworzenie aplikacji Google Chat.
  • Skonfigurowano autoryzację dla aplikacji Google Chat. Aktualizacja pokoju wymaga uwierzytelniania użytkownika o zakresie autoryzacji chat.spaces.

Node.js

  • Node.js i npm
  • Najnowsze biblioteki klienta Google dla środowiska Node.js. Aby je zainstalować, uruchom w interfejsie wiersza poleceń to polecenie:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Projekt Google Cloud z włączonym i skonfigurowanym interfejsem Google Chat API. Instrukcje znajdziesz w artykule Tworzenie aplikacji Google Chat.
  • Skonfigurowano autoryzację dla aplikacji Google Chat. Aktualizacja pokoju wymaga uwierzytelniania użytkownika o zakresie autoryzacji chat.spaces.

Aktualizowanie pokoju

Aby zaktualizować istniejący pokój w Google Chat, przekaż w swojej prośbie te informacje:

  • Określ zakres autoryzacji chat.spaces.
  • Wywołaj metodę patch w zasobie Space i przekaż name pokoju do aktualizacji oraz updateMask i body, które określają zaktualizowane atrybuty pokoju.
  • updateMask określa aspekty pokoju do aktualizacji i obejmuje:
    • displayName: aktualizuje czytelną dla użytkownika nazwę pokoju wyświetlanego w interfejsie Google Chat. Obsługuje tylko zmianę wyświetlanej nazwy pokoju o typie SPACE lub dodanie maski spaceType w celu zmiany typu pokoju GROUP_CHAT na SPACE. Próba zaktualizowania wyświetlanej nazwy pokoju GROUP_CHAT lub DIRECT_MESSAGE kończy się błędem dotyczącym nieprawidłowego argumentu.
    • spaceType: aktualizuje typ pokoju, ale obsługuje tylko zmianę typu pokoju GROUP_CHAT na SPACE. W masce aktualizacji umieść właściwość displayName razem z tabelą spaceType i upewnij się, że podana przestrzeń ma niepuste pole displayName i typ spacji SPACE. Jeśli istniejący pokój ma już typ SPACE, podczas aktualizowania nazwy wyświetlanej nazwa wyświetlana jest opcjonalna, a maska spaceType i typ SPACE w określonym miejscu są opcjonalne . Jeśli spróbujesz zaktualizować typ pokoju w inny sposób, wystąpi błąd nieprawidłowego argumentu.
    • spaceDetails: informacje o pokoju, w tym opis i reguły.
    • spaceHistoryState: obsługuje włączanie i wyłączanie historii w pokoju, o ile organizacja umożliwia użytkownikom zmianę ustawień historii. Wzajemnie współdziałają z innymi ścieżkami pól.

Aby zaktualizować spaceDetails dotychczasowego pokoju:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_space_update.py.
  2. Umieść ten kod w elemencie chat_space_update.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"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates the specified space description and guidelines.
        '''
    
        # 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().patch(
    
          # The space to update, and the updated space details.
          #
          # Replace {space} with a space name.
          # Obtain the space name from the spaces resource of Chat API,
          # or from a space's URL.
          name='spaces/SPACE',
          updateMask='spaceDetails',
          body={
    
            'spaceDetails': {
              'description': 'This description was updated with Chat API!',
              'guidelines': 'These guidelines were updated with Chat API!'
            }
    
          }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. W kodzie zastąp SPACE nazwą pokoju, którą możesz uzyskać za pomocą metody spaces.list w interfejsie Chat API lub z adresu URL pokoju.

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

    python3 chat_space_update.py
    

Node.js

  1. W katalogu roboczym utwórz plik o nazwie update-space.js.
  2. Umieść ten kod w elemencie update-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Updates a Chat space with the description and guidelines.
    * @return {!Promise<!Object>}
    */
    async function updateSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.patch({
        name: 'spaces/SPACE',
        updateMask: 'spaceDetails',
        requestBody: {
          spaceDetails: {
            description: 'This description was updated with Chat API!',
            guidelines: 'These guidelines were updated with Chat API!'
          },
        }
      });
    }
    
    updateSpace().then(console.log);
    
  3. W kodzie zastąp SPACE nazwą pokoju, którą możesz uzyskać za pomocą metody spaces.list w interfejsie Chat API lub z adresu URL pokoju.

  4. W katalogu roboczym uruchom przykład:

    node update-space.js
    

Interfejs Google Chat API zwraca wystąpienie zasobu Space zawierającego aktualizacje.