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 một không gian trong Google Chat. Việc thiết lập không gian sẽ tạo một không gian và thêm những 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 hai người dùng hoặc một người dùng và một ứng dụng trong Chat.
  • Cuộc trò chuyện nhóm là cuộc trò chuyện giữa ba người dùng trở lên và các ứng dụng Chat.
  • Không gian được đặt tên là những địa điểm cố định nơi 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 có một tin nhắn trực tiếp giữa hai người dùng, thì tin nhắn trực tiếp sẽ được trả về. Nếu không, tin nhắn trực tiếp sẽ được tạo.
  • Khi tạo 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 (chỉ bao gồm người dùng đang gọi) có thể được tạo.
  • Bạn không thể thiết lập các không gian có câu trả lời theo chuỗi hoặc thêm người bên ngoài Google Workspace.
  • Gói thành viên trùng lặp (bao gồm cả người dùng gọi) 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 trình mô phỏng, hãy chạy lệnh sau trong giao diện dòng lệnh:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Một dự án trên Google Cloud đã bật và định cấu hình 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 uỷ quyền cho ứng dụng Chat. Để thiết lập không gian, bạn cần Xác thực người dùng với phạm vi uỷ quyền chat.spaces.create hoặc chat.spaces.

Node.js

  • Node.js và npm
  • Các thư viện ứng dụng mới nhất của Google dành cho Node.js. Để cài đặt các trình xử lý sự kiện đó, hãy chạy lệnh sau trong giao diện dòng lệnh:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Một dự án trên Google Cloud đã bật và định cấu hình 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 uỷ quyền cho ứng dụng Chat. Để tạo không gian, bạn cần thực hiện Xác thực người dùng với 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 truyền những thông tin sau vào yêu cầu:

  • 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àm thành viên không gian, hãy chỉ định users/{user}, trong đó {user}{person_id} cho person trong API Mọi người hoặc 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/123456789member.name.
  • Để thêm một nhóm làm thành viên của không gian, hãy chỉ định groups/{group}, trong đó {group} là mã nhóm mà bạn muốn tạo thành viên. Bạn có thể truy xuất mã nhận dạng của nhóm bằng Cloud Identity API. Ví dụ: nếu API Cloud Identity trả về một nhóm có tên groups/123456789, thì hãy đặt membership.groupMember.name thành groups/123456789. Bạn không thể thêm Google Groups vào một cuộc trò chuyện nhóm hoặc tin nhắn trực tiếp, mà chỉ có thể thêm vào một không gian được đặt tên.
  • Để tạo tin nhắn trực tiếp giữa người dùng đang 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ỳ gói thành viên nào. Bạn chỉ có thể dùng phương thức này để thiết lập tin nhắn trực tiếp với ứng dụng gọi. Để thêm ứng dụng gọi làm thành viên của không gian hoặc tin nhắn trực tiếp hiện có giữa hai người dùng, hãy xem phần tạo gói 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 1 nhóm và 3 người dùng (bao gồm người dùng đã xác thực và 2 người dùng khác được chỉ định).

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 users and groups 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'
                  }
                },
                {
                  'groupMember': {
                    'name': 'groups/11223344'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created space.
        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'}},
            {groupMember: {name: 'groups/11223344'}},
          ]
        }
      });
    }
    
    setupSpace().then(console.log);
    
  3. Trong thư mục đang làm việc, hãy chạy mẫu:

    node setup-space.js
    

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

Để truy cập vào không gian, hãy sử dụng mã nhận dạng tài nguyên của không gian để tạo URL của không gian. Bạn có thể lấy mã nhận dạng 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 URL sau: https://mail.google.com/chat/u/0/#chat/space/1234567.