Actualiza el estado de lectura del espacio de un usuario

En esta guía, se explica cómo usar el método update() en el recurso SpaceReadState de la API de Google Chat para marcar espacios como leídos o no leídos.

El recurso SpaceReadState es un recurso singleton que representa detalles sobre el último mensaje leído de un usuario especificado en un espacio de Google Chat.

Requisitos previos

Node.js

Actualiza el estado de lectura del espacio del usuario que llama

Para actualizar el estado de lectura de un usuario en un espacio, incluye lo siguiente en tu solicitud:

  • Especifica el alcance de autorización chat.users.readstate.
  • Realiza una llamada al método UpdateSpaceReadState().
  • Pasa updateMask con el valor lastReadTime.
  • Pasa spaceReadState como una instancia de SpaceReadState con lo siguiente:
    • El campo name se establece en el estado de lectura del espacio que se actualizará, lo que incluye un ID o alias de usuario y un ID de espacio. La actualización del estado de lectura del espacio solo admite la actualización del estado de lectura del usuario que llama, que se puede especificar configurando uno de los siguientes parámetros:
      • Es el alias de me. Por ejemplo, users/me/spaces/SPACE/spaceReadState
      • Es la dirección de correo electrónico de Workspace del usuario que realiza la llamada. Por ejemplo, users/user@example.com/spaces/SPACE/spaceReadState.
      • ID del usuario que llama. Por ejemplo, users/USER/spaces/SPACE/spaceReadState.
    • El campo lastReadTime se establece en el valor actualizado de la fecha y hora en que se actualizó el estado de lectura del espacio del usuario. Por lo general, esto corresponde a la marca de tiempo del último mensaje leído o a una marca de tiempo especificada por el usuario para marcar la última posición de lectura en un espacio. Cuando el lastReadTime es anterior a la fecha y hora de creación del mensaje más reciente, el espacio aparece como no leído en la IU. Para marcar el espacio como leído, establece lastReadTime en cualquier valor posterior (mayor) que la hora de creación del mensaje más reciente. El valor de lastReadTime se fuerza para que coincida con la hora de creación del mensaje más reciente. Ten en cuenta que el estado de lectura del espacio solo afecta el estado de lectura de los mensajes que son visibles en la conversación de nivel superior del espacio. Las respuestas en los subprocesos no se ven afectadas por esta marca de tiempo y, en cambio, dependen del estado de lectura del subproceso.

En el siguiente ejemplo, se actualiza el estado de lectura del espacio del usuario que llama:

Node.js

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

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

// This sample shows how to update a space read state for the calling user
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const timestamp = new Date('2000-01-01').getTime();
  const request = {
    spaceReadState: {
      // Replace SPACE_NAME here
      name: 'users/me/spaces/SPACE_NAME/spaceReadState',
      lastReadTime: {
        seconds: Math.floor(timestamp / 1000),
        nanos: (timestamp % 1000) * 1000000
      }
    },
    updateMask: {
      // The field paths to update.
      paths: ['last_read_time']
    }
  };

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

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

main().catch(console.error);

Para ejecutar este ejemplo, reemplaza SPACE_NAME por el ID del name del espacio. Puedes obtener el ID llamando al método ListSpaces() o desde la URL del espacio.

La API de Google Chat actualiza el estado de lectura del espacio especificado y devuelve una instancia de SpaceReadState.