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 específico 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 de chat.users.readstate.
  • Realiza una llamada al método UpdateSpaceReadState().
  • Pasa updateMask con el valor lastReadTime.
  • Pasa spaceReadState como instancia de SpaceReadState con lo siguiente:
    • El campo name configurado en el estado de lectura del espacio que se actualizará, que incluye un ID de usuario o un alias 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
      • 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.
      • El ID de usuario del usuario que llama. Por ejemplo, users/USER/spaces/SPACE/spaceReadState.
    • El campo lastReadTime se establece en el valor actualizado de la hora en la que se actualizó el estado de lectura del espacio del usuario. Por lo general, corresponde a la marca de tiempo del último mensaje leído o a una marca de tiempo que especifica el usuario para marcar la última posición de lectura en un espacio. Cuando el 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 el tiempo de creación del mensaje más reciente. El lastReadTime se obliga a coincidir 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 las conversaciones no se ven afectadas por esta marca de tiempo y, en su lugar, dependen del estado de lectura de la conversación.

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

main().catch(console.error);

Para ejecutar esta muestra, reemplaza SPACE_NAME por el ID del name del espacio. Para obtener el ID, llama al método ListSpaces() 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.