Hướng dẫn này giải thích cách sử dụng phương thức updateSpaceReadState
trên
Tài nguyên SpaceReadState
của API Google Chat để đánh dấu các không gian là đã đọc hoặc chưa đọc.
Chiến lược phát hành đĩa đơn
Tài nguyên SpaceReadState
là một tài nguyên singleton biểu thị thông tin chi tiết về một
tin nhắn đọc gần đây nhất của người dùng mà bạn chỉ định trong phòng Google Chat.
Điều kiện tiên quyết
Python
- Doanh nghiệp Tài khoản Google Workspace có quyền truy cập vào Google Chat.
- Thiết lập môi trường:
- Tạo một dự án trên Google Cloud.
- Định cấu hình màn hình xin phép bằng OAuth.
- Bật và định cấu hình API Google Chat bằng tên, biểu tượng và nội dung mô tả cho ứng dụng Chat.
- Cài đặt Python Thư viện ứng dụng API của Google.
-
Tạo thông tin xác thực mã ứng dụng khách OAuth cho một ứng dụng dành cho máy tính. Để chạy mẫu trong
hãy lưu thông tin đăng nhập dưới dạng tệp JSON có tên
client_secrets.json
vào thư mục nội bộ.
- Chọn phạm vi uỷ quyền có hỗ trợ việc xác thực người dùng.
Node.js
- Doanh nghiệp Tài khoản Google Workspace có quyền truy cập vào Google Chat.
- Thiết lập môi trường:
- Tạo một dự án trên Google Cloud.
- Định cấu hình màn hình xin phép bằng OAuth.
- Bật và định cấu hình API Google Chat bằng tên, biểu tượng và nội dung mô tả cho ứng dụng Chat.
- Cài đặt Node.js Thư viện ứng dụng API của Google.
-
Tạo thông tin xác thực mã ứng dụng khách OAuth cho một ứng dụng dành cho máy tính. Để chạy mẫu trong
hãy lưu thông tin đăng nhập dưới dạng tệp JSON có tên
client_secrets.json
vào thư mục nội bộ.
- Chọn phạm vi uỷ quyền có hỗ trợ việc xác thực người dùng.
Apps Script
- Doanh nghiệp Tài khoản Google Workspace có quyền truy cập vào Google Chat.
- Thiết lập môi trường:
- Tạo một dự án trên Google Cloud.
- Định cấu hình màn hình xin phép bằng OAuth.
- Bật và định cấu hình API Google Chat bằng tên, biểu tượng và nội dung mô tả cho ứng dụng Chat.
- Tạo một dự án Apps Script độc lập, rồi bật Dịch vụ trò chuyện nâng cao.
- Chọn phạm vi uỷ quyền có hỗ trợ việc xác thực người dùng.
Cập nhật trạng thái đọc không gian của người dùng thực hiện lệnh gọi
Để cập nhật trạng thái đọc của người dùng trong một không gian, hãy đưa nội dung sau vào trong yêu cầu của bạn:
- Chỉ định phạm vi uỷ quyền
chat.users.readstate
. - Gọi
Phương thức
updateSpaceReadState
trênSpaceReadState
tài nguyên. - Truyền
name
của trạng thái đọc không gian để lấy, bao gồm cả mã nhận dạng người dùng hoặc email đại diện và mã không gian. Việc lấy trạng thái đọc của không gian chỉ hỗ trợ nhận thông tin về trạng thái đã đọc trạng thái của người dùng gọi, có thể được chỉ định bằng cách đặt một trong sau:- Bí danh
me
. Ví dụ:users/me/spaces/SPACE/spaceReadState
. - Địa chỉ email Workspace của người dùng gọi. Ví dụ:
users/user@example.com/spaces/SPACE/spaceReadState
. - Mã nhận dạng người dùng của người dùng gọi. Ví dụ:
users/USER/spaces/SPACE/spaceReadState
.
- Bí danh
- Truyền
updateMask
dùng để chỉ định các khía cạnh của trạng thái đọc không gian đến Bản cập nhật này hỗ trợ các đường dẫn trường sau:lastReadTime
: Thời điểm cập nhật trạng thái đọc không gian của người dùng. Thông thường, thời gian này tương ứng với dấu thời gian của tin nhắn đọc lần gần nhất, hoặc dấu thời gian do người dùng chỉ định để đánh dấu vị trí đọc lần cuối trong một . KhilastReadTime
ở trước thời gian tạo thông báo mới nhất, xuất hiện dưới dạng chưa đọc trong giao diện người dùng. Để đánh dấu không gian là đã đọc, hãy đặtlastReadTime
thành bất kỳ giá trị nào sau đó (lớn hơn) so với thông báo mới nhất được tạo bất cứ lúc nào.lastReadTime
bị buộc phải khớp với thời gian tạo thông báo mới nhất. Lưu ý rằng trạng thái đã đọc của không gian chỉ ảnh hưởng đến trạng thái đã đọc của tin nhắn có mặt trong cuộc trò chuyện ở cấp cao nhất của không gian. Tin nhắn trả lời trong chuỗi tin nhắn là không bị ảnh hưởng bởi dấu thời gian này và thay vào đó hãy dựa vào trạng thái đọc chuỗi.
Ví dụ sau đây cập nhật trạng thái đọc không gian của người dùng thực hiện lệnh gọi:
Python
- Trong thư mục đang làm việc, hãy tạo một tệp có tên
chat_spaceReadState_update.py
. Đưa mã sau vào
chat_spaceReadState_update.py
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.users.readstate"] def main(): ''' Authenticates with Chat API via user credentials, then updates the space read state for the calling user. ''' # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.users().spaces().updateSpaceReadState( # The space read state to update. # # Replace USER with the calling user's ID, Workspace email, # or the alias me. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. name='users/me/spaces/SPACE/spaceReadState', updateMask='lastReadTime', body={'lastReadTime': f'{datetime.datetime(2000, 1, 3).isoformat()}Z'} ).execute() # Prints the API's response. print(result) if __name__ == '__main__': main()
Trong mã, thay thế các nội dung sau:
SPACE
: tên không gian mà bạn có thể lấy từ Phương thứcspaces.list
trong API Chat hoặc qua URL của một không gian.
Trong thư mục đang làm việc, hãy tạo và chạy mẫu:
python3 chat_spaceReadState_update.py
Node.js
- Trong thư mục đang làm việc, hãy tạo một tệp có tên
chat_spaceReadState_update.js
. Đưa mã sau vào
chat_spaceReadState_update
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Authenticates with Chat API via user credentials, * then updates the space read state for the calling user. * @return {!Promise<!Object>} */ async function updateSpaceReadState() { /** * Authenticate with Google Workspace * and get user authorization. */ const scopes = [ 'https://www.googleapis.com/auth/chat.users.readstate', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); /** * Build a service endpoint for Chat API. */ const chatClient = await chat.chat({version: 'v1', auth: authClient}); /** * Use the service endpoint to call Chat API. */ return await chatClient.users.spaces.updateSpaceReadState({ /** * The space read state to update. * * Replace USER with the calling user's ID, Workspace email, * or the alias me. * * Replace SPACE with a space name. * Obtain the space name from the spaces resource of Chat API, * or from a space's URL. */ name: 'users/me/spaces/SPACE/spaceReadState', updateMask: 'lastReadTime', requestBody: { lastReadTime: '{datetime.datetime(2000, 1, 3).isoformat()}Z' } }); } /** * Use the service endpoint to call Chat API. */ getSpaceReadState().then(console.log);
Trong mã, thay thế các nội dung sau:
SPACE
: tên không gian mà bạn có thể lấy từ Phương thứcspaces.list
trong API Chat hoặc qua URL của một không gian.
Trong thư mục đang làm việc, hãy tạo và chạy mẫu:
node chat_spaceReadState_update.js
Apps Script
Ví dụ này gọi API Chat bằng cách sử dụng Dịch vụ trò chuyện nâng cao.
Thêm phạm vi uỷ quyền
chat.users.readstate
vào Tệpappsscript.json
của dự án Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.users.readstate" ]
Thêm một hàm như hàm này vào dự án Apps Script mã:
/** * Authenticates with Chat API via user credentials, * then updates the space read state for the calling user. * @param {string} spaceReadStateName The resource name of the space read state. */ function updateSpaceReadState(spaceReadStateName) { try { const time = new Date('January 1, 2000')).toJSON(); const body = {'lastReadTime': time}; Chat.Users.Spaces.updateSpaceReadState(spaceReadStateName, body); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to update read state with error %s', err.message); } }
API Google Chat cập nhật trạng thái đọc không gian đã chỉ định rồi trả về
một bản sao của
Tài nguyên SpaceReadState
.
Chủ đề có liên quan
- Lấy trạng thái đọc không gian của người dùng thực hiện lệnh gọi.
- Nhận trạng thái đọc chuỗi của người dùng đang gọi.