Atualizar o estado de leitura do espaço de um usuário

Este guia explica como usar o update() método no recurso SpaceReadState da API Google Chat para marcar os espaços como lidas ou não lidas.

O Recurso SpaceReadState é um recurso de singleton que representa detalhes sobre uma última mensagem lida do usuário especificado em um espaço do Google Chat.

Pré-requisitos

Node.js

Atualizar o estado de leitura do espaço do usuário que fez a chamada

Para atualizar o estado de leitura de um usuário em um espaço, inclua o seguinte em sua solicitação:

  • Especifique o escopo de autorização chat.users.readstate.
  • Chame o método UpdateSpaceReadState().
  • Transmita updateMask com o valor lastReadTime.
  • Transmita spaceReadState como uma instância do SpaceReadState pelo seguinte:
    • O campo name definido como o estado de leitura do espaço a ser atualizado, que inclui uma ID de usuário ou alias e um ID de espaço. A atualização do estado de leitura do espaço só oferece suporte à atualização do estado de leitura do usuário que fez a chamada, que pode ser especificado definindo uma das seguintes opções:
      • O alias me. Por exemplo, users/me/spaces/SPACE/spaceReadState.
      • O endereço de e-mail do Workspace do usuário que fez a chamada. Por exemplo, users/user@example.com/spaces/SPACE/spaceReadState.
      • O ID do usuário que fez a chamada. Por exemplo, users/USER/spaces/SPACE/spaceReadState.
    • O campo lastReadTime definido como o valor atualizado do horário o estado de leitura do espaço do usuário foi atualizado. Geralmente, isso corresponde ao carimbo de data/hora da última mensagem lida ou a um carimbo de data/hora especificado pelo usuário para marcar a última posição de leitura em um espaço. Quando o lastReadTime for anterior a depois do horário de criação da mensagem mais recente, ele vai aparecer como não lida na interface. Para marcar o espaço como lido, defina lastReadTime com qualquer valor posterior (maior) que o o horário de criação da mensagem mais recente. O lastReadTime é forçado a corresponder ao horário de criação da mensagem mais recente. O estado de leitura do espaço afeta apenas o estado das mensagens visíveis na conversa de nível superior do espaço. As respostas nas conversas não são afetadas por esse carimbo de data/hora. Em vez disso, dependem do estado de leitura da linha de execução.

O exemplo abaixo atualiza o estado de leitura do espaço do usuário que fez a chamada:

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 executar este exemplo, substitua SPACE_NAME pelo ID do name do espaço. Para conseguir o ID, chame o método ListSpaces() ou o URL do espaço.

A API Google Chat atualiza o estado de leitura do espaço especificado e retorna uma instância de SpaceReadState