本指南說明如何使用 Google Chat API SpaceReadState
資源的 update()
方法,將聊天室標示為已讀或未讀。
SpaceReadState
資源是單例資源,代表特定使用者在 Google Chat 聊天室中最後讀取的訊息詳細資料。
必要條件
Node.js
- 具有 Google Chat 存取權的 Business 或 Enterprise 版 Google Workspace 帳戶。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 啟用及設定 Google Chat API,並為 Chat 應用程式命名、設定圖示和說明。
- 安裝 Node.js Cloud 用戶端程式庫。
- 為電腦版應用程式
建立 OAuth 用戶端 ID 憑證。如要在本指南中執行範例,請將憑證儲存為名為
credentials.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
早於最新訊息的建立時間,聊天室在使用者介面中就會顯示為未讀。如要將聊天室標示為已讀,請將lastReadTime
設為晚於 (大於) 最新訊息建立時間的值。系統會強制將lastReadTime
設為與最新訊息建立時間一致。請注意,聊天室讀取狀態只會影響聊天室頂層對話中顯示的訊息讀取狀態。討論串中的回覆不受這個時間戳記影響,而是依據討論串的讀取狀態。
以下範例會更新呼叫使用者的空間讀取狀態:
Node.js
如要執行這個範例,請將 SPACE_NAME
替換為空間的 ID name
。您可以呼叫 ListSpaces()
方法,或從空間的網址取得 ID。
Google Chat API 會更新指定聊天室的讀取狀態,並傳回 SpaceReadState
的執行個體。