Aggiorna lo stato di lettura dello spazio di un utente

Questa guida spiega come utilizzare update() sulla risorsa SpaceReadState dell'API Google Chat per contrassegnare gli spazi come letto o da leggere.

La risorsa SpaceReadState è una risorsa singleton che rappresenta i dettagli dell'ultimo messaggio letto da 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 in la tua richiesta:

  • Specifica l'ambito di autorizzazione chat.users.readstate.
  • Chiama il UpdateSpaceReadState() .
  • Passa updateMask con il valore lastReadTime.
  • Passa 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 aggiornare lo 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 è stato impostato sul valore aggiornato dell'ora quando lo stato di lettura dello spazio dell'utente è stato aggiornato. Di solito corrisponde Il timestamp dell'ultimo messaggio letto o un timestamp specificato dall'utente per contrassegnare l'ultima posizione di lettura in uno spazio. Quando il valore lastReadTime è precedente data/ora di creazione dell'ultimo messaggio, lo spazio appare come da leggere nell'interfaccia utente. Per contrassegnare lo spazio come letto, imposta lastReadTime su un valore successivo (maggiore) rispetto all'ora di creazione dell'ultimo messaggio. lastReadTime è costretto a corrispondere all'ultima l'ora di creazione del messaggio. 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 invece sul valore lo stato di lettura del thread.

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

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 sample, sostituisci SPACE_NAME con l'ID di name dell'area. Puoi ottenerlo 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.