Thiết lập một không gian có các thành viên đầu tiên

Hướng dẫn này giải thích cách sử dụng phương thức setup trên tài nguyên Space của API Google Chat để thiết lập không gian Google Chat. Việc thiết lập không gian sẽ tạo không gian và thêm người dùng được chỉ định vào không gian đó.

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.

Khi thiết lập không gian, hãy cân nhắc những điều sau:

  • Người dùng đang gọi (đã xác thực) sẽ tự động được thêm vào không gian, vì vậy, bạn không cần chỉ định tư cách thành viên của người dùng trong yêu cầu.
  • Khi tạo tin nhắn trực tiếp (DM), nếu một tin nhắn trực tiếp tồn tại giữa hai người dùng thì tin nhắn trực tiếp sẽ được trả về. Nếu không, một tin nhắn trực tiếp sẽ được tạo.
  • Khi tạo một cuộc trò chuyện nhóm, nếu không có thành viên nào được cung cấp trong yêu cầu được thêm vào cuộc trò chuyện nhóm (ví dụ: vấn đề về quyền), thì một cuộc trò chuyện nhóm trống (bao gồm chỉ người dùng đang gọi) có thể được tạo.
  • Bạn không thể thiết lập không gian có câu trả lời theo chuỗi hoặc thêm những người không thuộc Google Workspace của bạn.
  • Những thành viên trùng lặp (bao gồm cả người dùng gọi) được cung cấp trong yêu cầu sẽ được lọc ra thay vì dẫn đến lỗi yêu cầu.

Đ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
    
  • 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 thiết lập không gian cần phải Xác thực người dùng trong phạm vi uỷ quyền chat.spaces.create hoặc chat.spaces.

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ạo không gian cần phải Xác thực người dùng trong phạm vi uỷ quyền chat.spaces.create hoặc chat.spaces.

Thiết lập không gian

Để thiết lập không gian, hãy chuyển những thông tin sau vào yêu cầu của bạn:

  • Chỉ định phạm vi uỷ quyền chat.spaces.create hoặc chat.spaces.
  • Gọi phương thức setup trên tài nguyên Space.
  • Để thêm người dùng là thành viên trong không gian, hãy chỉ định users/{user}, trong đó {user}{person_id} của person từ API Mọi người hoặc là mã nhận dạng của user trong API thư mục. Ví dụ: nếu người dùng API Mọi người resourceNamepeople/123456789, bạn có thể thêm người dùng đó vào không gian bằng cách thêm một thành viên có users/123456789 dưới dạng member.name.
  • Để tạo tin nhắn trực tiếp giữa người dùng gọi và một người dùng khác, hãy chỉ định tư cách thành viên của người dùng đó trong yêu cầu của bạn.
  • Để tạo tin nhắn trực tiếp giữa người dùng gọi và ứng dụng gọi, hãy đặt Space.singleUserBotDm thành true và không chỉ định bất kỳ thành viên nào. Bạn chỉ có thể sử dụng phương thức này để thiết lập một tin nhắn trực tiếp bằng ứng dụng gọi. Để thêm ứng dụng gọi làm thành viên của một không gian hoặc một tin nhắn trực tiếp hiện có giữa 2 người dùng, hãy xem phần tạo thành viên.

Ví dụ sau đây sẽ tạo một không gian được đặt tên và tạo các thành viên trong không gian đó cho 3 người dùng, người dùng đã xác thực và 2 người dùng được chỉ định khác:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_space_setup.py.
  2. Đưa mã sau vào chat_space_setup.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.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then sets up a Chat space by creating a space and adding members.
        '''
    
        # 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().setup(
    
          # Details about the space to set up.
          body = {
    
            # Attributes of the space to set up, like space type and display name.
            'space': {
    
                # To set up a named space, set spaceType to SPACE.
                'spaceType': 'SPACE',
    
                # The user-visible name of the space
                'displayName': 'API-setup'
            },
    
            # The people and app to add to the space.
            #
            # The authenticated user is automatically added to the space,
            # and doesn't need to be specified in the memberships array.
            'memberships': [
                {
                  'member': {
                    'name':'users/123456789',
                    'type': 'HUMAN'
                  }
                },
                {
                  'member': {
                    'name':'users/987654321',
                    'type': 'HUMAN'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_space_setup.py
    

Node.js

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên setup-space.js.
  2. Đưa mã sau vào setup-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Sets up a new Chat space with users.
    * @return {!Promise<!Object>}
    */
    async function setupSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.create',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.setup({
        requestBody: {
          space: {
            spaceType: 'SPACE',
            displayName: 'API-made',
          },
          memberships: [
            {member: {name: 'users/123456789', type: 'HUMAN'}},
            {member: {name: 'users/987654321', type: 'HUMAN'}},
          ]
        }
      });
    }
    
    setupSpace().then(console.log);
    
  3. Trong thư mục đang làm việc của bạn, hãy chạy mẫu:

    node setup-space.js
    

Một không gian trò chuyện có tên với 3 người dùng, bao gồm cả người dùng đã xác thực đã được thiết lập.

Để chuyển đến không gian, hãy sử dụng mã tài nguyên của không gian để tạo URL của không gian. Bạn có thể lấy mã tài nguyên từ không gian name trong nội dung phản hồi của Google Chat. Ví dụ: nếu name của không gian là spaces/1234567, bạn có thể chuyển đến không gian bằng cách sử dụng URL sau: https://mail.google.com/chat/u/0/#chat/space/1234567.