Actualiza el estado de lectura del espacio de un usuario

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

El SpaceReadState recurso 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 realiza la llamada

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.
  • Llama al UpdateSpaceReadState() método.
  • Pasa updateMask con el valor lastReadTime.
  • Pasa spaceReadState como una instancia de SpaceReadState con lo siguiente:
    • El campo name establecido en el estado de lectura del espacio que se actualizará, que incluye un alias o ID 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 realiza la llamada, que se puede especificar configurando una de las siguientes opciones:
      • El alias me. Por ejemplo, users/me/spaces/SPACE/spaceReadState.
      • La dirección de correo electrónico de Workspace del usuario que realiza la llamada. Por ejemplo, users/user@example.com/spaces/SPACE/spaceReadState.
      • El ID de usuario del usuario que realiza la llamada. Por ejemplo, users/USER/spaces/SPACE/spaceReadState.
    • El campo lastReadTime establecido en el valor actualizado de la 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 lastReadTime es anterior a la 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. Se fuerza lastReadTime 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 realiza la llamada:

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);
}

await main();

Para ejecutar esta muestra, reemplaza SPACE_NAME por el ID de el namedel espacio. Puedes obtener el ID llamando al ListSpaces() método o desde la URL del espacio.

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