Rimuovere un utente o un'app Google Chat da uno spazio

Questa guida spiega come utilizzare il metodo delete nella risorsa membership dell'API Google Chat per rimuovere un utente o un'app Chat da uno spazio noto anche come eliminazione di un abbonamento. Non è possibile rimuovere i gestori dello spazio se sono l'unico gestore dello spazio. Assegna un altro utente come gestore dello spazio prima di rimuovere questi abbonamenti.

La risorsa Membership indica se un utente umano o l'app Google Chat è stato invitato in uno spazio o è assente in uno spazio.

Prerequisiti

Python

  • Python 3.6 o versioni successive
  • Lo strumento di gestione dei pacchetti pip
  • Le librerie client di Google più recenti per Python. Per installarli o aggiornarli, esegui questo comando nell'interfaccia a riga di comando:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Un progetto Google Cloud in cui l'API Google Chat è abilitata e configurata. Per i passaggi da seguire, consulta Creare un'app Google Chat.
  • Autorizzazione configurata per l'app di Chat. L'eliminazione di un'appartenenza richiede l'autenticazione dell'utente con l'ambito di autorizzazione chat.memberships o chat.memberships.app da un utente che dispone dell'autorizzazione per eliminare l'appartenenza specificata.

Rimuovere un utente o un'app di chat da uno spazio

Per rimuovere un utente o un'app di chat da uno spazio:

  • Per rimuovere un utente, specifica l'ambito di autorizzazione chat.memberships. Per rimuovere un'app di Chat, specifica l'ambito di autorizzazione chat.memberships.app (le app possono eliminare solo la propria appartenenza, non quella di altre app). Come best practice, scegli l'ambito più restrittivo che consente comunque alla tua app di funzionare.
  • Chiama il metodo delete nella risorsa membership.
  • Supera il valore name dell'abbonamento da eliminare. Se l'abbonamento appartiene all'unico gestore dello spazio, assegna un altro utente come gestore dello spazio prima di eliminare l'abbonamento.

Ecco come eliminare un abbonamento:

Python

  1. Nella directory di lavoro, crea un file denominato chat_membership_delete.py.
  2. Includi il seguente codice in chat_membership_delete.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.memberships.app"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then deletes the specified 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().delete(
    
            # The membership to delete.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBER with a membership name.
            # Obtain the membership name from the memberships resource of
            # Chat API. To delete a Chat app's membership, replace MEMBER
            # with app; an alias for the app calling the API.
            name='spaces/SPACE/members/MEMBER'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        # When deleting a membership, the response body is empty.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Sostituisci quanto segue nel codice:

    • SPACE: il nome di uno spazio, che puoi ottenere dal metodo spaces.list nell'API Chat o dall'URL di uno spazio.

    • MEMBER: un nome di appartenenza, che puoi ottenere dal metodo spaces.members.list nell'API Chat. Per eliminare l'appartenenza di un'app, sostituisci MEMBER con app.

  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_membership_delete.py
    

In caso di esito positivo, il corpo della risposta restituisce l'appartenenza con 'state': 'NOT_A_MEMBER', a indicare che il membro non si trova più nello spazio.

{
    "name": "spaces/SPACE/members/MEMBER",
    "state": "NOT_A_MEMBER"
}