사용자의 스페이스 읽기 상태 업데이트

이 가이드에서는 Google Chat API의 SpaceReadState 리소스에서 update() 메서드를 사용하여 스페이스를 읽은 상태 또는 읽지 않은 상태로 표시하는 방법을 설명합니다.

SpaceReadState 리소스는 Google Chat 스페이스에서 지정된 사용자가 마지막으로 읽은 메시지에 관한 세부정보를 나타내는 싱글톤 리소스입니다.

기본 요건

Node.js

호출 사용자의 스페이스 읽기 상태 업데이트

스페이스 내에서 사용자의 읽기 상태를 업데이트하려면 요청에 다음을 포함합니다.

  • chat.users.readstate 승인 범위를 지정합니다.
  • UpdateSpaceReadState() 메서드를 호출합니다.
  • updateMasklastReadTime 값과 함께 전달합니다.
  • 다음과 함께 spaceReadStateSpaceReadState의 인스턴스로 전달합니다.
    • 업데이트할 공간 읽기 상태로 설정된 name 필드로, 사용자 ID 또는 별칭과 공간 ID가 포함됩니다. 스페이스 읽기 상태 업데이트는 호출 사용자의 읽기 상태 업데이트만 지원하며, 이는 다음 중 하나를 설정하여 지정할 수 있습니다.
      • me 별칭. 예를 들면 users/me/spaces/SPACE/spaceReadState입니다.
      • 호출 사용자의 Workspace 이메일 주소입니다. 예를 들면 다음과 같습니다. users/user@example.com/spaces/SPACE/spaceReadState
      • 호출 사용자의 사용자 ID입니다. 예를 들면 다음과 같습니다. users/USER/spaces/SPACE/spaceReadState
    • lastReadTime 필드는 사용자의 스페이스 읽기 상태가 업데이트된 시간의 업데이트된 값으로 설정됩니다. 일반적으로 이는 마지막으로 읽은 메시지의 타임스탬프 또는 스페이스에서 마지막 읽기 위치를 표시하기 위해 사용자가 지정한 타임스탬프에 해당합니다. lastReadTime가 최신 메시지 생성 시간보다 이전이면 스페이스가 UI에 읽지 않은 상태로 표시됩니다. 스페이스를 읽은 상태로 표시하려면 lastReadTime를 최신 메시지 생성 시간보다 나중에 (더 큰) 발생한 값으로 설정합니다. lastReadTime는 최신 메시지 생성 시간과 일치하도록 강제됩니다. 스페이스 읽기 상태는 스페이스의 최상위 대화에 표시되는 메시지의 읽기 상태에만 영향을 미칩니다. 대화목록의 답장은 이 타임스탬프의 영향을 받지 않으며 대신 대화목록 읽기 상태를 사용합니다.

다음 예에서는 호출 사용자의 스페이스 읽기 상태를 업데이트합니다.

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

이 샘플을 실행하려면 SPACE_NAME를 스페이스의 name에 있는 ID로 바꿉니다. ListSpaces() 메서드를 호출하거나 스페이스의 URL에서 ID를 가져올 수 있습니다.

Google Chat API는 지정된 스페이스 읽기 상태를 업데이트하고 SpaceReadState 인스턴스를 반환합니다.