Aggiorna lo stato di lettura dello spazio di un utente

Questa guida spiega come utilizzare il metodo update() nella risorsa SpaceReadState dell'API Google Chat per contrassegnare gli spazi come letti o non letti.

La risorsa SpaceReadState è una risorsa singleton che rappresenta i dettagli dell'ultimo messaggio letto di un utente specificato in uno spazio di Google Chat.

Prerequisiti

Node.js

Aggiorna lo stato di lettura dello spazio dell'utente chiamante

Per aggiornare lo stato di lettura di un utente all'interno di uno spazio, includi quanto segue nella richiesta:

  • Specifica l'ambito di autorizzazione chat.users.readstate.
  • Chiama il metodo UpdateSpaceReadState().
  • Passa updateMask con il valore lastReadTime.
  • Trasmetti spaceReadState come istanza di SpaceReadState con quanto segue:
    • Il campo name impostato sullo stato di lettura dello spazio da aggiornare, che include un ID utente o un alias e un ID spazio. L'aggiornamento dello stato di lettura dello spazio supporta solo l'aggiornamento dello stato di lettura dell'utente chiamante, che può essere specificato impostando una delle seguenti opzioni:
      • L'alias me. Ad esempio, users/me/spaces/SPACE/spaceReadState.
      • L'indirizzo email Workspace dell'utente che ha effettuato la chiamata. Ad esempio, users/user@example.com/spaces/SPACE/spaceReadState.
      • L'ID utente dell'utente chiamante. Ad esempio, users/USER/spaces/SPACE/spaceReadState.
    • Il campo lastReadTime impostato sul valore aggiornato dell'ora in cui è stato aggiornato lo stato di lettura dello spazio dell'utente. Di solito corrisponde al timestamp dell'ultimo messaggio letto o a un timestamp specificato dall'utente per contrassegnare l'ultima posizione letta in uno spazio. Quando lastReadTime è precedente alla data e all'ora di creazione dell'ultimo messaggio, lo spazio viene visualizzato come non letto nell'interfaccia utente. Per contrassegnare lo spazio come letto, imposta lastReadTime su un valore successivo (più grande) rispetto all'ora di creazione dell'ultimo messaggio. Il valore lastReadTime viene forzato in modo che corrisponda all'ora di creazione del messaggio più recente. Tieni presente che lo stato di lettura dello spazio influisce solo sullo stato di lettura dei messaggi visibili nella conversazione di primo livello dello spazio. Le risposte nei thread non sono interessate da questo timestamp e si basano sullo stato di lettura del thread.

L'esempio seguente aggiorna lo stato di lettura dello spazio dell'utente che chiama:

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

Per eseguire questo esempio, sostituisci SPACE_NAME con l'ID del name dello spazio. Puoi ottenere l'ID chiamando il metodo ListSpaces() o dall'URL dello spazio.

L'API Google Chat aggiorna lo stato di lettura dello spazio specificato e restituisce un'istanza di SpaceReadState.