Mời hoặc thêm người dùng hoặc ứng dụng Google Chat vào 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 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 trong không gian trước khi tham gia. Nếu không, việc tạo thành viên sẽ thêm thành viên trực tiếp vào không gian đã chỉ định.

Tài nguyên Membership cho biết người dùng thực hoặc ứng dụng Google Chat được mời tham gia, tham gia hay không tham gia 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 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. Để tạo gói thành viên, bạn cần phải Xác thực người dùng trong phạm vi uỷ quyền chat.memberships hoặc chat.memberships.app.

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. Để tạo gói thành viên, bạn cần phải Xác thực người dùng trong 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 các thông tin sau vào yêu cầu của bạn:

  • 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 mà bạn muốn tạo thành viên.
  • Đặt member thành users/{user}, trong đó {user} là người mà bạn muốn tạo 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 API People resourceNamepeople/123456789, thì hãy đặt membership.member.name thành users/123456789.
    • Mã nhận dạng cho người dùng trong Directory API.
    • Đị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 Google Workspace khác, thì bạn phải sử dụng địa chỉ email của họ.

Ví dụ sau đây thêm một người dùng vào 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 là 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ã, hãy thay thế các đoạn mã 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 một không gian.

    • USER: một 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.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/USER', type: 'HUMAN'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. Trong mã, hãy thay thế các đoạn mã 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 một không gian.

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

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

    node add-user-to-space.js
    

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

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

Một ứng dụng nhắn tin không thể thêm một ứng dụng khác làm thành viên vào không gian. Để thêm ứng dụng trong 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 chuyển nội dung sau đây vào yêu cầu của bạn:

  • 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 mà bạn muốn 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 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 là 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 mã, hãy thay thế SPACE bằng tên không gian. Bạn có thể lấy tên nà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 mã, hãy thay thế SPACE bằng tên không gian. Bạn có thể lấy tên nà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 của bạn, hãy chạy mẫu:

    node add-app-to-space.js
    

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