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 để nhận siêu dữ liệu về tệp đính kèm tin nhắn. Câu trả lời là 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 có chứa 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. Chiến lược phát hành đĩa đơn dữ liệu trong tệp đính kèm sẽ khác nhau tuỳ thuộc vào việc tệp đính kèm đó nội dung được tải lên (tệp cục bộ) hoặc là tệp được lưu trữ trên Drive. Chiến lược phát hành đĩa đơn Tài nguyên Media biểu thị 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). Chiến lược phát hành đĩa đơn Tài nguyên Attachment biểu thị một bản sao của nội dung nghe nhìn (một tệp) được đính kèm vào thư. Attachment tài nguyên bao gồm siêu dữ liệu về tệp đính kèm, chẳng hạn như nơi lưu mật khẩ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
  • Thư viện ứng dụng mới nhất của Google. Cách cài đặt hoặc cập nhật các tính năng này: chạy lệnh sau trong giao diện dòng lệnh:
    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    

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

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

Dưới đây là cách lấy siêu dữ liệu về tệp đính kèm 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 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 phiên bản của Attachment có nêu chi tiết siêu dữ liệu về tệp đính kèm tin nhắn cụ thể.