Ghim hoặc bỏ ghim tin nhắn trong phòng Google Chat

Với tài nguyên MessagePin trong API Chat, ứng dụng của bạn có thể ghim tin nhắn, bỏ ghim tin nhắn và nhận danh sách tất cả tin nhắn được ghim trong không gian trên Google Chat. Tất cả thành viên trong không gian đều có thể thấy tin nhắn được ghim trong giao diện Chat. API này giúp ứng dụng của bạn quản lý tin nhắn được ghim thay cho người dùng.

Để biết thông tin về cách người dùng ghim tin nhắn trong không gian, hãy xem bài viết Ghim tin nhắn, tệp và đường liên kết trong không gian và tin nhắn.

Điều kiện tiên quyết

Node.js

Lưu ý

  • Bạn chỉ có thể ghim những tin nhắn đã có trong một không gian. Bạn không thể tạo một tin nhắn mới và ghim tin nhắn đó trong cùng một yêu cầu.
  • Bạn không thể ghim những tin nhắn chỉ hiển thị cho bạn. Ví dụ: bạn không thể ghim tin nhắn riêng tư nhận được từ một ứng dụng.
  • Mỗi phòng Chat có thể có tối đa 100 tin nhắn được ghim. Nếu ứng dụng của bạn cố gắng ghim tin nhắn thứ 101, thì API sẽ trả về lỗi.

Ghim tin nhắn

Để ghim một tin nhắn bằng xác thực người dùng, hãy truyền các thông tin sau trong yêu cầu của bạn:

  • Chỉ định phạm vi uỷ quyền chat.spaces.pins hoặc chat.spaces.
  • Gọi messagePins.create.
  • Chỉ định parent (tên không gian) và cung cấp body bằng tên tài nguyên message của thư gốc.

Mẫu sau đây ghim một tin nhắn trong không gian:

Python

  1. Trong thư mục làm việc, hãy tạo một tệp có tên là chat_pin_message.py.
  2. Thêm mã sau vào chat_pin_message.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then pins a message in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Pin a message.
        result = service.spaces().messagePins().create(
            # The space to pin the message in.
            #
            # Replace SPACE with a space ID or name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE',
    
            # The message to pin.
            body={
                'message': 'spaces/SPACE/messages/MESSAGE'
            }
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế những nội dung sau:

    • SPACE: mã nhận dạng từ name của không gian.
    • MESSAGE: mã nhận dạng từ name của thông báo.
  4. Trong thư mục làm việc, hãy tạo và chạy mẫu:

    python3 chat_pin_message.py

Bỏ ghim tin nhắn

Để gỡ ghim một tin nhắn bằng xác thực người dùng, hãy truyề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.spaces.pins hoặc chat.spaces.
  • Gọi messagePins.delete.
  • Đặt name thành tên tài nguyên của MessagePin cần xoá.

Sau đây là cách gỡ bỏ ghim một tin nhắn:

Python

  1. Trong thư mục làm việc, hãy tạo một tệp có tên là chat_unpin_message.py.
  2. Thêm mã sau vào chat_unpin_message.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then unpins a message from a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Unpin a message.
        result = service.spaces().messagePins().delete(
            # The resource name of the message pin to delete.
            #
            # Replace SPACE with a space ID or name, and MESSAGE with the message ID.
            name='spaces/SPACE/messagePins/MESSAGE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế những nội dung sau:

    • SPACE: mã nhận dạng từ name của không gian.
    • MESSAGE: mã nhận dạng từ name của thông báo.
  4. Trong thư mục làm việc, hãy tạo và chạy mẫu:

    python3 chat_unpin_message.py

Lấy danh sách tin nhắn đã ghim

Để lấy danh sách tin nhắn được ghim trong các không gian mà bạn có quyền truy cập, hãy sử dụng xác thực người dùng và truyền các thông tin sau trong yêu cầu của bạn:

  • Chỉ định một trong các phạm vi đọc: chat.spaces.pins.readonly, chat.spaces.readonly, chat.spaces.pins hoặc chat.spaces.
  • Gọi messagePins.list.
  • Chỉ định parent làm tên không gian để tìm nạp tin nhắn được ghim.

Sau đây là cách liệt kê các tin nhắn được ghim:

Python

  1. Trong thư mục làm việc, hãy tạo một tệp có tên là chat_list_pinned_messages.py.
  2. Thêm mã sau vào chat_list_pinned_messages.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists pinned messages in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # List pinned messages.
        result = service.spaces().messagePins().list(
            # The space to list pinned messages from.
            #
            # Replace SPACE with a space ID or name.
            parent='spaces/SPACE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế SPACE bằng mã nhận dạng không gian trong name của không gian.

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

    python3 chat_list_pinned_messages.py