Hướng dẫn này giải thích cách sử dụng phương thức findDirectMessage
trên tài nguyên Space
của API Google Chat để biết thông tin chi tiết về không gian tin nhắn trực tiếp (DM).
Tài nguyên Space
đại diện cho nơi mọi người và các ứng dụng trong Chat có thể gửi tin nhắn, chia sẻ tệp và cộng tác. Có một số loại không gian:
- Tin nhắn trực tiếp (DM) là các cuộc trò chuyện giữa 2 người dùng hoặc một người dùng với một ứng dụng Chat.
- Cuộc trò chuyện nhóm là các cuộc trò chuyện giữa ba người dùng trở lên và các ứng dụng trong Chat.
- Không gian được đặt tên là các nơi cố định để mọi người gửi tin nhắn, chia sẻ tệp và cộng tác.
Việc xác thực bằng xác thực ứng dụng cho phép ứng dụng Chat nhận được các tin nhắn trực tiếp mà ứng dụng Chat có quyền truy cập trong Google Chat (ví dụ: các tin nhắn trực tiếp mà ứng dụng đó là thành viên). Quá trình xác thực bằng phương thức xác thực người dùng sẽ trả về các tin nhắn trực tiếp mà người dùng đã xác thực có quyền truy cập.
Điều kiện tiên quyết
Python
- Python 3.6 trở lên
- Công cụ quản lý gói pip
Các thư viện ứng dụng mới nhất của Google dành cho Python. Để cài đặt hoặc cập nhật các công cụ này, hãy chạy lệnh sau trong giao diện dòng lệnh của bạn:
pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
- Một dự án trên Google Cloud đã bật và thiết lập API Google Chat. Để biết các bước, hãy xem bài viết Tạo ứng dụng Google Chat.
Đã định cấu hình hoạt động uỷ quyền cho ứng dụng Chat. Việc tìm tin nhắn trực tiếp hỗ trợ cả hai cách sau:
- Xác thực người dùng với phạm vi uỷ quyền
chat.spaces.readonly
hoặcchat.spaces
. - Xác thực ứng dụng với phạm vi uỷ quyền
chat.bot
.
- Xác thực người dùng với phạm vi uỷ quyền
Node.js
- Node.js và npm
Thư viện ứng dụng mới nhất của Google dành cho Node.js. Để cài đặt các công cụ này, hãy chạy lệnh sau trong giao diện dòng lệnh của bạn:
npm install @google-cloud/local-auth @googleapis/chat
- Một dự án trên Google Cloud đã bật và thiết lập API Google Chat. Để biết các bước, hãy xem bài viết Tạo ứng dụng Google Chat.
Đã định cấu hình hoạt động uỷ quyền cho ứng dụng Chat. Việc tìm tin nhắn trực tiếp hỗ trợ cả hai cách sau:
- Xác thực người dùng với phạm vi uỷ quyền
chat.spaces.readonly
hoặcchat.spaces
. - Xác thực ứng dụng với phạm vi uỷ quyền
chat.bot
.
- Xác thực người dùng với phạm vi uỷ quyền
Tìm tin nhắn trực tiếp
Để tìm một tin nhắn trực tiếp trong Google Chat, hãy chuyển nội dung sau đây vào yêu cầu của bạn:
- Với tính năng xác thực ứng dụng, hãy chỉ định phạm vi uỷ quyền
chat.bot
. Với quy trình xác thực người dùng, hãy chỉ định phạm vi uỷ quyềnchat.spaces.readonly
hoặcchat.spaces
. - Gọi phương thức
findDirectMessage
trên tài nguyênUser
, truyềnname
của người dùng khác trong DM để trả về. Với quy trình xác thực người dùng, phương thức này sẽ trả về một tin nhắn trực tiếp giữa người dùng gọi và người dùng được chỉ định. Với xác thực ứng dụng, phương thức này sẽ trả về một DM giữa ứng dụng gọi và người dùng được chỉ định. - Để thêm người dùng là thành viên trong không gian, hãy chỉ định
users/{user}
, trong đó{user}
là{person_id}
củaperson
từ People API hoặc mã nhận dạng củauser
trong Directory API. Ví dụ: nếu người dùng API Mọi ngườiresourceName
làpeople/123456789
, bạn có thể thêm người dùng đó vào không gian bằng cách thêm một gói thành viên cóusers/123456789
dưới dạngmember.name
.
Tìm tin nhắn trực tiếp bằng cách xác thực người dùng
Dưới đây là cách tìm tin nhắn trực tiếp bằng phương thức xác thực người dùng:
Python
- Trong thư mục đang làm việc, hãy tạo một tệp có tên
chat_space_find_dm_user.py
. Đưa mã sau vào
chat_space_find_dm_user.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.spaces.readonly"] def main(): ''' Authenticates with Chat API via user credentials, then returns details about a specified DM. ''' # 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.spaces().findDirectMessage( # The other user in the direct message (DM) to return. # # Replace USER with a user name. name='users/USER' ).execute() # Prints details about the direct message. print(result) if __name__ == '__main__': main()
Trong mã này, hãy thay thế
USER
bằngname
củaUser
trong Google Chat.Trong thư mục đang làm việc, hãy tạo và chạy mẫu:
python3 chat_space_find_dm_user.py
Node.js
Trong thư mục đang làm việc, hãy tạo một tệp có tên là
find-direct-message-space.js
.Đưa mã sau vào
find-direct-message-space.js
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Find a direct message Chat space for a user. * @return {!Promise<!Object>} */ async function findDirectMessageSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.spaces.readonly', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.findDirectMessage( {name: 'users/USER'}); } findDirectMessageSpace().then(console.log);
Trong mã này, hãy thay thế
USER
bằngname
củaUser
trong Google Chat.Trong thư mục đang làm việc của bạn, hãy chạy mẫu:
node find-direct-message-space.js
API Chat trả về một thực thể của Space
có thông tin chi tiết về DM được chỉ định.
Tìm một tin nhắn trực tiếp bằng tính năng xác thực ứng dụng
Dưới đây là cách tìm tin nhắn trực tiếp bằng xác thực ứng dụng:
Python
- Trong thư mục đang làm việc, hãy tạo một tệp có tên
chat_space_find_dm_app.py
. Đưa mã sau vào
chat_space_find_dm_app.py
:from google.oauth2 import service_account from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Use the service endpoint to call Chat API. result = chat.spaces().findDirectMessage( # The other user in the direct message (DM) to return. # # Replace USER with a user name. name='users/USER' ).execute() print(result)
Trong mã này, hãy thay thế
USER
bằngname
củaUser
trong Google Chat.Trong thư mục đang làm việc, hãy tạo và chạy mẫu:
python3 chat_space_find_dm_app.py
Node.js
Trong thư mục đang làm việc, hãy tạo một tệp có tên là
app-find-direct-message-space.js
.Đưa mã sau vào
app-find-direct-message-space.js
:const chat = require('@googleapis/chat'); /** * Find a direct message Chat space for a user. * @return {!Promise<!Object>} */ async function findDirectMessageSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.bot', ]; const auth = new chat.auth.GoogleAuth({ scopes, keyFilename: 'credentials.json', }); const authClient = await auth.getClient(); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.findDirectMessage( {name: 'users/USER'}); } findDirectMessageSpace().then(console.log);
Trong mã này, hãy thay thế
USER
bằngname
củaUser
trong Google Chat.Trong thư mục đang làm việc của bạn, hãy chạy mẫu:
node app-find-direct-message-space.js
API Chat trả về một thực thể của Space
có thông tin chi tiết về DM được chỉ định.
Chủ đề có liên quan
- Tạo không gian.
- Thiết lập không gian.
- Xem thông tin chi tiết về không gian.
- Không gian danh sách.
- Cập nhật không gian.
- Xoá không gian.