Soạn tin nhắn nháp

Trong tiện ích bổ sung của Google Workspace, bạn có thể tạo tiện ích có liên kết với hành động. Bạn có thể sử dụng thao tác soạn email nháp mới, tuỳ ý điền các thư nháp này bằng cách sử dụng thông tin được nhập vào giao diện người dùng của tiện ích bổ sung hoặc thông tin từ một thông báo đang mở. Ví dụ: bạn có thể thêm một nút trong giao diện người dùng thông báo của tiện ích bổ sung tạo câu trả lời cho thư hiện đang mở được điền sẵn bằng thông qua tiện ích bổ sung.

Khi một hành động tạo thư được kích hoạt, Gmail sẽ thực thi lệnh gọi lại để tạo và trả về bản nháp. Sau đó, Gmail sẽ hiển thị thư nháp đó trong Giao diện người dùng trong một cửa sổ soạn email tiêu chuẩn mà sau đó người dùng có thể chỉnh sửa và gửi khi cần.

Định cấu hình một thao tác để tạo thông báo nháp

Để định cấu hình một tiện ích nhằm bắt đầu hành động tạo bản nháp khi được chọn, bạn phải hãy làm như sau:

  1. Đảm bảo tệp kê khai của bạn bao gồm Phạm vi action.compose:

    https://www.googleapis.com/auth/gmail.addons.current.action.compose

    Bạn có thể dùng thêm một phạm vi không bắt buộc, nhưng chỉ nên làm vậy nếu phạm vi đó là hoàn toàn cần thiết.

  2. Tạo một đối tượng Action và liên kết hàm đó với một hàm callback bạn xác định.

  3. Gọi setComposeAction() của tiện ích hàm trình xử lý tiện ích, cung cấp Action và chỉ định ComposeEmailType

  4. Triển khai hàm callback thực thi thao tác tạo bản nháp. Chiến dịch này hàm được gán một đối tượng sự kiện làm đối số. Hàm callback phải thực hiện những việc sau:

    1. Tạo một GmailDraft .
    2. Tạo ComposeActionResponse bằng cách sử dụng ComposeActionResponseBuilder lớp và GmailDraft .
    3. Trả về ComposeActionResponse đã tạo.

Bạn có thể điền sẵn GmailDraft bạn tạo trong hàm callback bằng người nhận, tiêu đề, nội dung thư và tệp đính kèm. Để điền vào bản nháp, dữ liệu có thể đến từ bất kỳ nguồn nào, nhưng thường bắt nguồn từ thông tin được cung cấp cho chính tiện ích bổ sung, thông tin trong thông báo mở, hoặc thông tin thu thập được từ dịch vụ của bên thứ ba. Chiến lược phát hành đĩa đơn đối tượng sự kiện được truyền vào hàm callback chứa mã thông báo mở và tiện ích bổ sung khác thông tin mà bạn có thể sử dụng để điền sẵn bản nháp.

Bạn có thể tạo thư nháp dưới dạng một thư độc lập mới hoặc một thư trả lời cho một thông báo hiện có. Việc này được kiểm soát bởi ComposeEmailType enum được gán cho setComposeAction(). Bạn có thể tạo thư trả lời nháp dưới dạng thư trả lời đơn hoặc "trả lời tất cả" tin nhắn.

Bản nháp độc lập

Một bản nháp độc lập sẽ bắt đầu một chuỗi mới và không phải là câu trả lời cho bất kỳ chuỗi tin nhắn hiện có nào . Bạn có thể tạo một bản nháp độc lập với một trong các thành phần sau Chức năng của dịch vụ Gmail:

Trả lời bản nháp

Bản nháp tin nhắn trả lời là một phần trong chuỗi tin nhắn hiện có. Bản nháp thư trả lời có các thư trả lời chỉ được gửi đến người gửi thư hoặc "trả lời tất cả" các thư nháp được gửi cho những người đã nhận được thư đó. Bạn có thể tạo một thư trả lời nháp bằng một trong các dịch vụ Gmail sau hàm:

Ví dụ:

Đoạn mã sau đây cho biết cách chỉ định một thao tác sẽ tạo câu trả lời nháp thành một nút.

  var composeAction = CardService.newAction()
      .setFunctionName('createReplyDraft');
  var composeButton = CardService.newTextButton()
      .setText('Compose Reply')
      .setComposeAction(
          composeAction,
          CardService.ComposedEmailType.REPLY_AS_DRAFT);

  // ...

  /**
   *  Creates a draft email (with an attachment and inline image)
   *  as a reply to an existing message.
   *  @param {Object} e An event object passed by the action.
   *  @return {ComposeActionResponse}
   */
  function createReplyDraft(e) {
    // Activate temporary Gmail scopes, in this case to allow
    // a reply to be drafted.
    var accessToken = e.gmail.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    // Creates a draft reply.
    var messageId = e.gmail.messageId;
    var message = GmailApp.getMessageById(messageId);
    var draft = message.createDraftReply('',
        {
            htmlBody: "Kitten! <img src='cid:kitten'/>",
            attachments: [
              UrlFetchApp.fetch('https://example.com/images/myDog.jpg')
                  .getBlob()
            ],
            inlineImages: {
              "kitten": UrlFetchApp.fetch('https://example.com/images/myKitten.jpg')
                           .getBlob()
            }
        }
    );

    // Return a built draft response. This causes Gmail to present a
    // compose window to the user, pre-filled with the content specified
    // above.
    return CardService.newComposeActionResponseBuilder()
        .setGmailDraft(draft).build();
  }