Lấy siêu dữ liệu về tệp đính kèm trong tin nhắn

Hướng dẫn này giải thích cách sử dụng phương thức get trên tài nguyên Media của API Google Chat để lấy siêu dữ liệu về tệp đính kèm tin nhắn. Phản hồi là một thực thể của tài nguyên Attachment.

Khi người dùng gửi tin nhắn đến ứng dụng của bạn, Google Chat sẽ gửi một sự kiện tương tác MESSAGE. Sự kiện tương tác mà ứng dụng của bạn nhận được bao gồm một nội dung yêu cầu là tải trọng JSON đại diện cho sự kiện tương tác, bao gồm cả mọi tệp đính kèm. Dữ liệu trong tệp đính kèm khác nhau tuỳ thuộc vào việc tệp đính kèm là nội dung được tải lên (tệp cục bộ) hay là tệp được lưu trữ trên Drive. Tài nguyên Media đại diện cho một tệp được tải lên Google Chat, chẳng hạn như hình ảnh, video và tài liệu. Tài nguyên Attachment đại diện cho một thực thể của nội dung nghe nhìn, một tệp và được đính kèm vào một thông báo. Tài nguyên Attachment bao gồm siêu dữ liệu về tệp đính kèm, chẳng hạn như vị trí lưu tệp.

Đ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 google-auth
    
  • 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. Để nhận được tin nhắn, bạn cần xác thực ứng dụng trong phạm vi uỷ quyền chat.bot.

Nhận tệp đính kèm cho tin nhắn

Để nhận siêu dữ liệu không đồng bộ về tệp đính kèm tin nhắn trong Google Chat, hãy chuyển nội dung sau đây vào yêu cầu của bạn:

Dưới đây là cách xem siêu dữ liệu về tệp đính kèm trong tin nhắn:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Get a Chat message.
    result = chat.spaces().messages().attachments().get(
    
        # The message to get.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        #
        # Replace MESSAGE with a message name.
        # Obtain the message name from the response body returned
        # after creating a message asynchronously with Chat REST API.
        name='spaces/SPACE/messages/MESSAGE/attachments/ATTACHMENT'
    
      ).execute()
    
    # Print Chat API's response in your command line interface.
    print(result)
    
  3. Trong mã, hãy thay thế spaces/SPACE/messages/MESSAGE/attachments/ATTACHMENT bằng tên tệp đính kèm tin nhắn.

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

    python3 chat_get_message_attachment.py
    

API Chat trả về một thực thể của Attachment giúp nêu chi tiết siêu dữ liệu về tệp đính kèm tin nhắn đã chỉ định.