Suprime un mensaje

En esta guía, se explica cómo usar el método delete() en el recurso Message de la API de Google Chat para borrar un mensaje de texto o de tarjeta.

En la API de Chat, un mensaje de Chat se representa con el recurso Message. Si bien los usuarios de Chat solo pueden enviar mensajes que contengan texto, las apps de Chat pueden usar muchas otras funciones de mensajería, como mostrar interfaces de usuario estáticas o interactivas, recopilar información de los usuarios y entregar mensajes de forma privada. Para obtener más información sobre las funciones de mensajería disponibles para la API de Chat, consulta la descripción general de los mensajes de Google Chat.

Con la autenticación de apps, puedes usar este método para borrar un mensaje que envió la app de Chat. Con la autenticación del usuario, puedes usar este método para borrar un mensaje que envió el usuario autenticado. Si el usuario es administrador del espacio, es posible que también puedas borrar un mensaje que enviaron otros miembros del espacio. Para obtener más información, consulta Obtén información sobre tu rol como administrador de un espacio.

Requisitos previos

Node.js

Python

Java

Apps Script

Borra un mensaje con autenticación de usuario

Para borrar un mensaje con autenticación del usuario, pasa lo siguiente en tu solicitud:

  • Especifica el alcance de autorización de chat.messages.
  • Realiza una llamada al método DeleteMessage().
  • Establece name en el nombre del recurso del mensaje que se borrará.

En el siguiente ejemplo, se borra un mensaje con autenticación del usuario:

Node.js

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

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

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

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME and MESSAGE_NAME here
    name: 'spaces/SPACE_NAME/messages/MESSAGE_NAME'
  };

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

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

main().catch(console.error);

Python

chat/client-libraries/cloud/delete_message_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.messages"]

# This sample shows how to delete a message with user credential
def delete_message_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.DeleteMessageRequest(
        # Replace SPACE_NAME and MESSAGE_NAME here
        name = "spaces/SPACE_NAME/messages/MESSAGE_NAME",
    )

    # Make the request
    response = client.delete_message(request)

    # Handle the response
    print(response)

delete_message_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/DeleteMessageUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.DeleteMessageRequest;
import com.google.chat.v1.SpaceName;

// This sample shows how to delete message with user credential.
public class DeleteMessageUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.messages";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      DeleteMessageRequest.Builder request = DeleteMessageRequest.newBuilder()
        // replace SPACE_NAME and MESSAGE_NAME here
        .setName("spaces/SPACE_NAME/messages/MESSAGE_NAME");
      chatServiceClient.deleteMessage(request.build());
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to delete a message with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages'
 * referenced in the manifest file (appsscript.json).
 */
function deleteMessageUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here
  const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME';

  // Make the request
  const response = Chat.Spaces.Messages.remove(name);

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

Para ejecutar esta muestra, reemplaza lo siguiente:

  • SPACE_NAME: Es el ID del name del espacio. Puedes obtener el ID llamando al método ListSpaces() o desde la URL del espacio.
  • MESSAGE_NAME: Es el ID del name del mensaje. Puedes obtener el ID del cuerpo de la respuesta que se muestra después de crear un mensaje de forma asíncrona con la API de Chat o con el nombre personalizado asignado al mensaje en el momento de su creación.

Si se ejecuta de forma correcta, el cuerpo de la respuesta estará vacío, lo que indica que el mensaje se borró.

Borra un mensaje con autenticación de la app

Para borrar un mensaje con autenticación de apps, pasa lo siguiente en tu solicitud:

  • Especifica el alcance de autorización de chat.bot.
  • Realiza una llamada al método DeleteMessage().
  • Establece name en el nombre del recurso del mensaje que se borrará.

En el siguiente ejemplo, se borra un mensaje con autenticación de apps:

Node.js

chat/client-libraries/cloud/delete-message-app-cred.js
import {createClientWithAppCredentials} from './authentication-utils.js';

// This sample shows how to delete a message with app credential
async function main() {
  // Create a client
  const chatClient = createClientWithAppCredentials();

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME and MESSAGE_NAME here
    name: 'spaces/SPACE_NAME/messages/MESSAGE_NAME'
  };

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

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

main().catch(console.error);

Python

chat/client-libraries/cloud/delete_message_app_cred.py
from authentication_utils import create_client_with_app_credentials
from google.apps import chat_v1 as google_chat

# This sample shows how to delete a message with app credential
def delete_message_with_app_cred():
    # Create a client
    client = create_client_with_app_credentials()

    # Initialize request argument(s)
    request = google_chat.DeleteMessageRequest(
        # Replace SPACE_NAME and MESSAGE_NAME here
        name = "spaces/SPACE_NAME/messages/MESSAGE_NAME",
    )

    # Make the request
    response = client.delete_message(request)

    # Handle the response
    print(response)

delete_message_with_app_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/DeleteMessageAppCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.DeleteMessageRequest;

// This sample shows how to delete message with app credential.
public class DeleteMessageAppCred {

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithAppCredentials()) {
      DeleteMessageRequest.Builder request = DeleteMessageRequest.newBuilder()
        // replace SPACE_NAME and MESSAGE_NAME here
        .setName("spaces/SPACE_NAME/messages/MESSAGE_NAME");
      chatServiceClient.deleteMessage(request.build());
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to delete a message with app credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot'
 * used by service accounts.
 */
function deleteMessageAppCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here
  const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME';
  const parameters = {};

  // Make the request
  const response = Chat.Spaces.Messages.remove(name, parameters, getHeaderWithAppCredentials());

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

Para ejecutar esta muestra, reemplaza lo siguiente:

  • SPACE_NAME: Es el ID del name del espacio. Puedes obtener el ID llamando al método ListSpaces() o desde la URL del espacio.
  • MESSAGE_NAME: Es el ID del name del mensaje. Puedes obtener el ID del cuerpo de la respuesta que se muestra después de crear un mensaje de forma asíncrona con la API de Chat o con el nombre personalizado asignado al mensaje en el momento de su creación.

Si se ejecuta de forma correcta, el cuerpo de la respuesta estará vacío, lo que indica que el mensaje se borró.