Mời hoặc thêm người dùng, nhóm trên Google Groups hoặc ứng dụng Google Chat vào một không gian

Hướng dẫn này giải thích cách sử dụng phương thức create trên tài nguyên membership của API Google Chat để mời hoặc thêm người dùng, nhóm trên Google Groups hoặc ứng dụng Chat vào một không gian còn gọi là tạo gói thành viên. Khi tạo thành viên, nếu thành viên được chỉ định đã tắt chính sách tự động chấp nhận, thì họ sẽ được mời và phải chấp nhận lời mời tham gia không gian. Nếu không, việc tạo thành viên sẽ trực tiếp thêm thành viên đó vào không gian được chỉ định.

Tài nguyên Membership cho biết việc người dùng hoặc ứng dụng Google Chat được mời tham gia, tham gia một phần hay vắng mặt trong một không gian.

Đ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. Để tạo gói thành viên, bạn cần Xác thực người dùng với phạm vi uỷ quyền chat.memberships hoặc chat.memberships.app.

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 gói thành viên, bạn cần Xác thực người dùng với phạm vi uỷ quyền chat.memberships hoặc chat.memberships.app.

Mời hoặc thêm người dùng vào không gian

Để mời hoặc thêm người dùng vào một không gian, hãy chuyển nội dung sau vào yêu cầu:

  • Chỉ định phạm vi uỷ quyền chat.memberships.
  • Gọi phương thức create trên tài nguyên membership.
  • Đặt parent thành tên tài nguyên của không gian để tạo thành viên.
  • Đặt member thành users/{user}, trong đó {user} là người mà bạn muốn tạo gói thành viên và là:
    • Mã nhận dạng của người trong API Mọi người. Ví dụ: nếu người resourceName của API Mọi người là people/123456789, hãy đặt membership.member.name thành users/123456789.
    • Mã nhận dạng cho người dùng trong API Thư mục.
    • Địa chỉ email của người dùng. Ví dụ: users/222larabrown@gmail.com hoặc users/larabrown@cymbalgroup.com. Nếu người dùng sử dụng Tài khoản Google hoặc thuộc một tổ chức khác trên Google Workspace, thì bạn phải sử dụng địa chỉ email của họ.

Ví dụ sau đây sẽ thêm một người dùng vào một không gian:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_membership_user_create.py.
  2. Đưa mã sau vào chat_membership_user_create.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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds a user to a Chat space by creating a membership.
        '''
    
        # 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().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which user the membership is for.
            body = {
              'member': {
                'name':'users/USER',
                'type': 'HUMAN'
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. 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ức spaces.list trong API Chat hoặc từ URL của không gian.

    • USER: mã nhận dạng người dùng.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_membership_user_create.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the user to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addUserToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/USER', type: 'HUMAN'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. 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ức spaces.list trong API Chat hoặc từ URL của không gian.

    • USER: mã nhận dạng người dùng.

  4. Trong thư mục đang làm việc, hãy chạy mẫu:

    node add-user-to-space.js
    

API Chat trả về một bản sao của membership có thông tin chi tiết về tư cách thành viên của người dùng đã được tạo.

Mời hoặc thêm một nhóm trên Google Groups vào không gian

Để mời hoặc thêm một nhóm trên Google Groups vào một không gian, hãy chuyển nội dung sau vào yêu cầu:

  • Chỉ định phạm vi uỷ quyền chat.memberships.
  • Gọi phương thức create trên tài nguyên membership.
  • Đặt parent thành tên tài nguyên của không gian để tạo thành viên.
  • Đặt groupMember thành groups/{group}, trong đó {group} là mã nhóm mà bạn muốn tạo gói 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 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 đã đặt tên. Ví dụ sau đây sẽ thêm một nhóm vào không gian được đặt tên:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_membership_group_create.py.
  2. Đưa mã sau vào chat_membership_group_create.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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds a group to a Chat space by creating a membership.
        '''
    
        # 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().members().create(
    
            # The named space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which group the membership is for.
            body = {
              'groupMember': {
                'name':'groups/GROUP',
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. 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ức spaces.list trong API Chat hoặc từ URL của không gian.

    • GROUP: một mã nhóm.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_membership_group_create.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the group to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addUserToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {groupMember: {name: 'groups/GROUP'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. 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ức spaces.list trong API Chat hoặc từ URL của không gian.

    • GROUP: một mã nhóm.

  4. Trong thư mục đang làm việc, hãy chạy mẫu:

    node add-group-to-space.js
    

API Chat trả về một bản sao của membership cho biết thông tin chi tiết về tư cách thành viên trong nhóm đã được tạo.

Thêm ứng dụng Chat vào một không gian

Một ứng dụng Chat không thể thêm một ứng dụng khác làm thành viên vào một không gian. Để thêm một ứng dụng Chat vào một không gian hoặc tin nhắn trực tiếp giữa 2 người dùng, hãy truyền nội dung sau vào yêu cầu:

  • Chỉ định phạm vi uỷ quyền chat.memberships.app.
  • Gọi phương thức create trên tài nguyên membership.
  • Đặt parent thành tên tài nguyên của không gian để tạo thành viên.
  • Đặt member thành users/app; một bí danh đại diện cho ứng dụng gọi API Chat.

Ví dụ sau đây sẽ thêm một ứng dụng Chat vào một không gian:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_membership_app_create.py.
  2. Đưa mã sau vào chat_membership_app_create.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.memberships.app"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds the Chat app to a Chat space.
        '''
    
        # 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().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Set the Chat app as the entity that gets added to the space.
            # 'app' is an alias for the Chat app calling the API.
            body = {
                'member': {
                  'name':'users/app',
                  'type': 'BOT'
                }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong đoạn mã, hãy thay thế SPACE bằng tên không gian mà bạn có thể lấy từ phương thức spaces.list trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_membership_app_create.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the app to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addAppToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships.app',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/app', type: 'BOT'}}
      });
    }
    
    addAppToSpace().then(console.log);
    
  3. Trong đoạn mã, hãy thay thế SPACE bằng tên không gian mà bạn có thể lấy từ phương thức spaces.list trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc, hãy chạy mẫu:

    node add-app-to-space.js
    

API Chat trả về một bản sao của membership cho biết thông tin chi tiết về gói thành viên trong ứng dụng đã được tạo.