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

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

O recurso SpaceReadState é um recurso único que representa detalhes sobre a última mensagem lida de um 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 na 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 de SpaceReadState com o seguinte:
    • O campo name definido como o estado de leitura do espaço a ser atualizado, que inclui um ID do usuário ou alias e um ID do espaço. A atualização do estado de leitura de espaço só oferece suporte à atualização do estado de leitura do usuário que faz 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 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 foi definido como o valor atualizado do horário em que o estado de leitura de 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 é anterior ao horário de criação da mensagem mais recente, o espaço aparece como não lido na interface. Para marcar o espaço como lido, defina lastReadTime como qualquer valor posterior (maior) que 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 de leitura das mensagens que estão 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 e dependem do estado de leitura da conversa.

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 esse 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.