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:
Đả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.
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.Gọi
setComposeAction()
của tiện ích hàm trình xử lý tiện ích, cung cấpAction
và chỉ địnhComposeEmailType
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 cung cấp 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:
- Tạo một
GmailDraft
. - Tạo
ComposeActionResponse
bằng cách sử dụngComposeActionResponseBuilder
lớp vàGmailDraft
. - Trả về
ComposeActionResponse
đã tạo.
- Tạo một
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ã nhận dạng 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 thuộc tính sau Chức năng của dịch vụ Gmail:
GmailApp.createDraft(recipient, subject, body)
GmailApp.createDraft(recipient, subject, body, options)
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:
GmailMessage.createDraftReply(body)
GmailMessage.createDraftReply(body, options)
GmailMessage.createDraftReplyAll(body)
GmailMessage.createDraftReplyAll(body, options)
GmailThread.createDraftReply(body)
GmailThread.createDraftReply(body, options)
GmailThread.createDraftReplyAll(body)
GmailThread.createDraftReplyAll(body, options)
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();
}