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