Mettre à jour l'état de lecture d'un espace utilisateur

Ce guide explique comment utiliser le update() sur la ressource SpaceReadState de l'API Google Chat pour marquer les espaces comme lues ou non lues.

La Ressource SpaceReadState est une ressource singleton qui représente les détails d'une le dernier message lu par l'utilisateur spécifié dans un espace Google Chat.

Prérequis

Node.js

Mettre à jour l'état de lecture de l'espace de l'utilisateur appelant

Pour mettre à jour l'état de lecture d'un utilisateur dans un espace, incluez les éléments suivants dans votre demande:

  • Spécifiez le champ d'application de l'autorisation chat.users.readstate.
  • Appelez la méthode UpdateSpaceReadState().
  • Transmettez updateMask avec la valeur lastReadTime.
  • Transmettez spaceReadState en tant qu'instance de SpaceReadState par les éléments suivants:
    • Champ name défini sur l'état de lecture de l'espace à mettre à jour, qui inclut un ID utilisateur ou un alias et un ID d'espace. La mise à jour de l'état de lecture d'un espace n'accepte et la mise à jour de l'état de lecture de l'utilisateur appelant, qui peut être spécifié en configurant l'une des options suivantes: <ph type="x-smartling-placeholder">
        </ph>
      • L'alias me. Exemple : users/me/spaces/SPACE/spaceReadState.
      • Adresse e-mail Workspace de l'utilisateur appelant. Par exemple : users/user@example.com/spaces/SPACE/spaceReadState.
      • ID utilisateur de l'appelant. Par exemple : users/USER/spaces/SPACE/spaceReadState.
    • Le champ lastReadTime défini sur la valeur mise à jour de l'heure à laquelle l'état de lecture de l'espace de l'utilisateur a été mis à jour. Cela correspond généralement à Le code temporel du dernier message lu ou un code temporel spécifié par l'utilisateur pour marquer la dernière position lue dans un espace. Lorsque l'lastReadTime est antérieur à l'heure de création du dernier message, l'espace apparaît comme non lu dans l'UI. Pour marquer l'espace comme lu, définissez lastReadTime sur une valeur ultérieure (supérieure) à celle de la date et l'heure de création du dernier message. lastReadTime est forcé à correspondre à l'heure de création du dernier message. Notez que l'état de lecture de l'espace n'affecte que la lecture état des messages visibles dans la conversation de premier niveau de l'espace. Les réponses dans les fils de discussion ne sont pas affectées par cet horodatage, mais dépendent plutôt de l'état de lecture du fil de discussion.

L'exemple suivant met à jour l'état de lecture de l'espace de l'utilisateur appelant:

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

Pour exécuter cet exemple, remplacez SPACE_NAME par l'ID de l'name de l'espace. Vous pouvez obtenir l'ID en appelant la méthode ListSpaces() ou à partir de l'URL de l'espace.

L'API Google Chat met à jour l'état de lecture de l'espace spécifié et renvoie une instance de SpaceReadState.