Aktualizowanie subskrypcji użytkownika w pokoju Google Chat

Z tego przewodnika dowiesz się, jak używać metody update() w zasobach Membership interfejsu API Google Chat, aby zmieniać atrybuty członkostwa, na przykład przekształcać członka pokoju w menedżera pokoju lub menedżera pokoju w zwykłego użytkownika pokoju.

Jeśli jesteś administratorem Google Workspace, możesz wywołać metodę update(), aby zaktualizować członkostwo w dowolnym pokoju w organizacji Google Workspace.

Zasób Membership informuje, czy użytkownik lub aplikacja Google Chat został zaproszony do pokoju, jego część lub brak w nim.

Wymagania wstępne

Node.js

Aktualizowanie subskrypcji

Aby zaktualizować członkostwo w pokoju, w żądaniu podaj te informacje:

  • Określ zakres autoryzacji:
  • Wywołaj metodę UpdateMembership().
  • Przekaż membership jako instancję Membership z tym kodem:
    • Pole name ustawione na członkostwo do zaktualizowania, które zawiera identyfikator pokoju i identyfikator użytkownika.
    • Pola członkostwa, które mają zostać zaktualizowane, mają ustawione nowe wartości.
  • Przekaż updateMask, aby określić aspekty subskrypcji, które chcesz zaktualizować. Zawiera ona te elementy:
    • role: rola użytkownika w pokoju czatu, która określa jego dozwolone działania w pokoju. Możliwe wartości:
      • ROLE_MEMBER: użytkownik pokoju. Użytkownik ma podstawowe uprawnienia, takie jak wysyłanie wiadomości do pokoju. W rozmowach 1:1 i rozmowach grupowych bez nazwy wszyscy mają tę rolę.
      • ROLE_MANAGER: menedżer pokoju. Użytkownik ma wszystkie podstawowe uprawnienia oraz uprawnienia administracyjne, które umożliwiają zarządzanie pokojem, np. dodawanie i usuwanie użytkowników. Obsługiwane tylko w pokojach, w których spaceType ma wartość SPACE (spacje z nazwą).

Ustawianie zwykłego uczestnika pokoju jako menedżera pokoju

Ten przykład wywołuje interfejs Chat API przy użyciu uwierzytelniania użytkownika, aby zwykły użytkownik pokoju stał się menedżerem pokoju przez określenie role jako ROLE_MANAGER:

Node.js

chat/client-libraries/cloud/update-membership-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.memberships'];

// This sample shows how to update a membership with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME'
    },
    updateMask: {
      // The field paths to update.
      paths: ['role']
    }
  };

  // Make the request
  const response = await chatClient.updateMembership(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Aby uruchomić przykład, zastąp to:

  • SPACE_NAME: identyfikator pokojuname. Identyfikator możesz uzyskać, wywołując metodę ListSpaces() lub korzystając z adresu URL pokoju.
  • MEMBER_NAME: identyfikator członkostwa name. Identyfikator możesz uzyskać, wywołując metodę ListMemberships() lub z treści odpowiedzi zwróconej po utworzeniu członkostwa asynchronicznie za pomocą interfejsu Chat API.
  • ROLE_NAME: zaktualizowana rola, ROLE_MANAGER.

Interfejs Google Chat API aktualizuje podaną wartość użytkownika jako menedżera pokoju i zwraca instancję Membership.

Ustawianie menedżera pokoju jako zwykłego uczestnika

Ten przykład wywołuje interfejs Chat API przy użyciu uwierzytelniania użytkownika, aby uczynić menedżera pokoju zwykłym członkiem pokoju przez określenie role jako ROLE_MEMBER:

Node.js

chat/client-libraries/cloud/update-membership-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.memberships'];

// This sample shows how to update a membership with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME'
    },
    updateMask: {
      // The field paths to update.
      paths: ['role']
    }
  };

  // Make the request
  const response = await chatClient.updateMembership(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Aby uruchomić przykład, zastąp te wartości:

  • SPACE_NAME: identyfikator pokojuname. Identyfikator możesz uzyskać, wywołując metodę ListSpaces() lub korzystając z adresu URL pokoju.
  • MEMBER_NAME: identyfikator członkostwa name. Identyfikator możesz uzyskać, wywołując metodę ListMemberships() lub z treści odpowiedzi zwróconej po utworzeniu członkostwa asynchronicznie za pomocą interfejsu Chat API.
  • ROLE_NAME: zaktualizowana rola, ROLE_MEMBER.

Interfejs Google Chat API aktualizuje określone członkostwo na menedżera pokoju i zwraca instancję Membership.

Ustawianie zwykłego członka pokoju jako menedżera pokoju w aplikacji Google Chat

Uwierzytelnianie aplikacji wymaga jednorazowego zatwierdzenia przez administratora.

Tworzenie klucza interfejsu API

Aby wywołać metodę interfejsu API w wersji przedpremierowej dla programistów, musisz użyć niepublicznej wersji dokumentu dotyczącego wykrywania interfejsu API w wersji przedpremierowej dla programistów. Aby uwierzytelnić żądanie, musisz podać klucz interfejsu API.

Aby utworzyć klucz interfejsu API, otwórz projekt Google Cloud aplikacji i wykonaj te czynności:

  1. W konsoli Google Cloud kliknij Menu  > Interfejsy API i usługi > Dane logowania.

    Przejdź do danych logowania

  2. Kliknij Utwórz dane logowania > Klucz interfejsu API.
  3. Wyświetli się nowy klucz API.
    • Kliknij Kopiuj , aby skopiować klucz interfejsu API i użyć go w kodzie aplikacji. Klucz interfejsu API znajdziesz też w sekcji „Klucze interfejsu API” w danych logowania projektu.
    • Kliknij Ogranicz klucz, aby zaktualizować ustawienia zaawansowane i ograniczyć użycie klucza interfejsu API. Więcej informacji znajdziesz w artykule Stosowanie ograniczeń kluczy interfejsu API.

Napisać skrypt, który wywołuje interfejs Chat API

W tym przykładzie wywołujemy interfejs API Google Chat za pomocą uwierzytelniania aplikacji, aby uczynić zwykłego członka pokoju menedżerem pokoju. W tym celu w elementach body, które określają zaktualizowane atrybuty członkostwa, podajemy wartość role jako ROLE_MANAGER:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_membership_update_to_manager_app.py.
  2. Dodaj do pliku chat_membership_update_to_manager_app.py ten kod:

    from google.oauth2 import service_account
    from apiclient.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.app.memberships"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then updates a specified space member to change
        it from a regular member to a space manager.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().members().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MANAGER'}
    
          ).execute()
    
        # Prints details about the updated membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Zastąp w kodzie następujące elementy:

    • API_KEY: klucz interfejsu API utworzony do tworzenia punktu końcowego usługi Chat API.

    • SPACE: nazwa pokoju, którą możesz uzyskać za pomocą metody spaces.list w interfejsie API Google Chat lub z adresu URL pokoju.

    • MEMBERSHIP: nazwa subskrypcji, którą możesz uzyskać za pomocą metody spaces.members.list w interfejsie Chat API.

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

    python3 chat_membership_update_to_manager_app.py

Ustawianie menedżera pokoju jako zwykłego użytkownika w aplikacji Google Chat

Uwierzytelnianie aplikacji wymaga jednorazowego zatwierdzenia przez administratora.

Tworzenie klucza interfejsu API

Aby wywołać metodę interfejsu API w wersji przedpremierowej dla programistów, musisz użyć niepublicznej wersji dokumentu dotyczącego wykrywania interfejsu API w wersji przedpremierowej dla programistów. Aby uwierzytelnić żądanie, musisz podać klucz interfejsu API.

Aby utworzyć klucz interfejsu API, otwórz projekt Google Cloud aplikacji i wykonaj te czynności:

  1. W konsoli Google Cloud kliknij Menu  > Interfejsy API i usługi > Dane logowania.

    Przejdź do danych logowania

  2. Kliknij Utwórz dane logowania > Klucz interfejsu API.
  3. Wyświetli się nowy klucz API.
    • Kliknij Kopiuj , aby skopiować klucz interfejsu API i użyć go w kodzie aplikacji. Klucz interfejsu API znajdziesz też w sekcji „Klucze interfejsu API” w danych logowania projektu.
    • Kliknij Ogranicz klucz, aby zaktualizować ustawienia zaawansowane i ograniczyć użycie klucza API. Więcej informacji znajdziesz w artykule Stosowanie ograniczeń dotyczących kluczy interfejsu API.

Tworzenie skryptu wywołującego interfejs Chat API

Ten przykład wywołuje interfejs Chat API za pomocą uwierzytelniania aplikacji, aby uczynić menedżera pokoju zwykłym członkiem pokoju przez określenie role jako ROLE_MEMBER w elemencie body, który określa zaktualizowane atrybuty członkostwa:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_membership_update_to_member_app.py.
  2. Dodaj do pliku chat_membership_update_to_member_app.py ten kod:

    from google.oauth2 import service_account
    from apiclient.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.app.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates a specified space member to change
        it from a regular member to a space manager.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().members().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MEMBER'}
    
          ).execute()
    
        # Prints details about the updated membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. W kodzie zamień:

    • API_KEY: klucz interfejsu API utworzony do tworzenia punktu końcowego usługi Chat API.

    • SPACE: nazwa pokoju, którą możesz uzyskać za pomocą metody spaces.list w interfejsie API Google Chat lub z adresu URL pokoju.

    • MEMBERSHIP: nazwa subskrypcji, którą możesz uzyskać za pomocą metody spaces.members.list w interfejsie Chat API.

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

    python3 chat_membership_update_to_member_app.py

Aktualizowanie subskrypcji jako administrator Google Workspace

Jeśli jesteś administratorem Google Workspace, możesz wywołać metodę update(), aby zaktualizować listę użytkowników w dowolnym pokoju w organizacji Google Workspace.

Aby wywołać tę metodę jako administrator Google Workspace:

  • Wywołaj metodę, używając uwierzytelniania użytkownika, i określ zakres autoryzacji, który obsługuje wywoływanie metody przy użyciu uprawnień administratora.
  • W żądaniu ustaw parametr zapytania useAdminAccess na true.

Więcej informacji i przykłady znajdziesz w artykule Zarządzanie pokojami Google Chat przez administratora Google Workspace.