このガイドでは、Google Chat API の SpaceReadState
リソースの update()
メソッドを使用して、スペースを既読または未読としてマークする方法について説明します。
SpaceReadState
リソースは、Google Chat スペースで指定されたユーザーが最後に読んだメッセージの詳細を表すシングルトン リソースです。
前提条件
Node.js
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する。
- Chat 用アプリの名前、アイコン、説明を使用して、Google Chat API を有効にして構成します。
- Node.js Cloud クライアント ライブラリをインストールします。
- デスクトップ アプリケーションの
OAuth クライアント ID 認証情報を作成します。このガイドのサンプルを実行するには、認証情報を
credentials.json
という名前の JSON ファイルとしてローカル ディレクトリに保存します。
- ユーザー認証をサポートする 認可スコープを選択します。
呼び出し元ユーザーのスペースの読み取り状態を更新する
スペース内のユーザーの既読状態を更新するには、リクエストに次の内容を含めます。
chat.users.readstate
認可スコープを指定します。UpdateSpaceReadState()
メソッドを呼び出します。- 値
lastReadTime
を含むupdateMask
を渡します。 - 次のコードを使用して、
spaceReadState
をSpaceReadState
のインスタンスとして渡します。- 更新するスペースの読み取り状態に設定された
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
このサンプルを実行するには、SPACE_NAME
をスペースの name
から取得した ID に置き換えます。ID は、ListSpaces()
メソッドを呼び出すか、スペースの URL から取得できます。
Google Chat API は、指定されたスペースの読み取り状態を更新し、SpaceReadState
のインスタンスを返します。