Zapraszanie i dodawanie użytkowników lub aplikacji Google Chat do pokoju

Z tego przewodnika dowiesz się, jak używać metody create w zasobie membership interfejsu Google Chat API do zapraszania i dodawania użytkowników lub aplikacji Google Chat do pokoju nazywanego też członkostwem. Jeśli podczas tworzenia członkostwa określony użytkownik ma wyłączone zasady automatycznego akceptowania, jest zaproszony i musi zaakceptować zaproszenie do pokoju, zanim do niego dołączy. W przeciwnym razie utworzenie subskrypcji spowoduje dodanie użytkownika bezpośrednio do określonego pokoju.

Zasób Membership wskazuje, czy użytkownik został zaproszony do pokoju, użytkownik lub aplikacja Google Chat został(a) zaproszony(a) lub nie ma go w pokoju.

Wymagania wstępne

Python

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

    pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
    
  • Opublikowana aplikacja Google Chat. Aby utworzyć i opublikować aplikację do obsługi czatu, przeczytaj artykuł Tworzenie aplikacji Google Chat.

  • Autoryzacja dla aplikacji do obsługi czatu została skonfigurowana. Aby utworzyć członkostwo, musisz mieć uwierzytelnienie użytkowników z zakresem autoryzacji chat.memberships lub chat.memberships.app.

Zapraszanie i dodawanie użytkowników do pokoju

Aby zaprosić do pokoju lub dodać użytkownika, przekaż w swojej prośbie te elementy:

  • Określ zakres autoryzacji chat.memberships.
  • Wywołaj metodę create w zasobie membership.
  • Ustaw parent na nazwę zasobu pokoju, w którym chcesz utworzyć członkostwo.
  • Ustaw member na users/{user}, gdzie {user} to osoba, dla której chcesz utworzyć członkostwo, i ma jedną z tych wartości:
    • Identyfikator osoby w interfejsie People API. Jeśli na przykład w polu person (osoba) interfejsu People APIresourceName masz wartość people/123456789, ustaw wartość membership.member.name na users/123456789.
    • Identyfikator użytkownika w interfejsie Directory API.
    • Adres e-mail użytkownika. Na przykład users/222larabrown@gmail.com lub users/larabrown@cymbalgroup.com. Jeśli użytkownik korzysta z konta Google lub należy do innej organizacji Google Workspace, musisz użyć jego adresu e-mail.

Ten przykład pokazuje dodawanie użytkownika do pokoju:

Python

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

    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # 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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds a user to a Chat space by creating a membership.
        '''
    
        # 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().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which user the membership is for.
            body = {
              'member': {
                'name':'users/USER',
                'type': 'HUMAN'
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. W kodzie zastąp następujący fragment:

    • SPACE: nazwa pokoju, którą można uzyskać, korzystając z metody spaces.list w Chat API lub z adresu URL pokoju.

    • USER: identyfikator użytkownika.

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

    python3 chat_membership_user_create.py
    

Interfejs Chat API zwraca instancję membership, która zawiera szczegóły utworzonej subskrypcji.

Dodawanie aplikacji do obsługi czatu do pokoju

Aplikacja do obsługi czatu nie może dodać innej aplikacji jako użytkownika pokoju. Aby dodać aplikację do obsługi czatu do pokoju lub rozmowy na czacie między 2 użytkownikami, przekaż w swojej prośbie te informacje:

  • Określ zakres autoryzacji chat.memberships.app.
  • Wywołaj metodę create w zasobie membership.
  • Ustaw parent na nazwę zasobu pokoju, w którym chcesz utworzyć członkostwo.
  • Ustaw member na users/app – alias reprezentujący aplikację wywołującą interfejs Chat API.

Ten przykład dodaje aplikację do obsługi czatu do pokoju:

Python

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

    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # 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.memberships.app"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds the Chat app to a Chat space.
        '''
    
        # 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().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Set the Chat app as the entity that gets added to the space.
            # 'app' is an alias for the Chat app calling the API.
            body = {
                'member': {
                  'name':'users/app',
                  'type': 'BOT'
                }
            }
    
        ).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_membership_app_create.py
    

Interfejs Chat API zwraca instancję membership, która zawiera szczegóły utworzonej subskrypcji.