本指南將說明如何在 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。您可以呼叫 ListSpaces()
方法,或從空間的網址取得 ID。
Google Chat API 會更新指定的聊天室讀取狀態,並傳回 SpaceReadState
的例項。