คุณจะสร้างวิดเจ็ตที่มีการดําเนินการที่ลิงก์อยู่ได้ในส่วนเสริม Google Workspace คุณสามารถใช้การดําเนินการเขียนจดหมายฉบับร่างใหม่ (ไม่บังคับ) ได้โดยการกรอกข้อมูลที่ป้อนใน UI ส่วนเสริมหรือข้อมูลจากข้อความที่เปิดอยู่ เช่น คุณอาจมีปุ่มใน UI ของข้อความส่วนเสริมซึ่งสร้างการตอบกลับข้อความที่เปิดอยู่ในปัจจุบันโดยใช้ข้อมูลจากส่วนเสริม
เมื่อมีการทํางานที่สร้างข้อความ Gmail จะเรียกใช้ฟังก์ชันเรียกกลับเพื่อสร้างและแสดงผลฉบับร่าง จากนั้น Gmail จะแสดงแบบร่างนั้นใน UI ในหน้าต่างเขียนอีเมลมาตรฐาน ซึ่งผู้ใช้แก้ไขและส่งได้ตามต้องการ
การกําหนดค่าการดําเนินการเพื่อสร้างข้อความร่าง
หากต้องการกําหนดค่าวิดเจ็ตเพื่อเริ่มการดําเนินการสร้างฉบับร่างเมื่อเลือก คุณต้องดําเนินการต่อไปนี้
ตรวจสอบว่าไฟล์ Manifest มีขอบเขต
action.compose
ดังต่อไปนี้https://www.googleapis.com/auth/gmail.addons.current.action.compose
คุณจะใช้ขอบเขตที่ให้สิทธิ์มากขึ้นแทนได้ แต่ควรทําเฉพาะในกรณีที่ขอบเขตนั้นจําเป็นจริงๆ เท่านั้น
สร้างออบเจ็กต์
Action
และเชื่อมโยงกับฟังก์ชันเรียกกลับที่คุณกําหนดเรียก
setComposeAction()
ของวิดเจ็ตในส่วนฟังก์ชันการจัดการวิดเจ็ต โดยระบุออบเจ็กต์Action
และระบุComposeEmailType
ใช้ฟังก์ชันเรียกกลับที่ดําเนินการสร้างฉบับร่าง ฟังก์ชันนี้จะได้รับออบเจ็กต์เหตุการณ์เป็นอาร์กิวเมนต์ ฟังก์ชันเรียกกลับต้องดําเนินการดังต่อไปนี้
- สร้างออบเจ็กต์
GmailDraft
- สร้างออบเจ็กต์
ComposeActionResponse
โดยใช้คลาสComposeActionResponseBuilder
และออบเจ็กต์GmailDraft
- แสดงผล
ComposeActionResponse
ที่สร้างขึ้น
- สร้างออบเจ็กต์
คุณสามารถป้อนข้อมูล GmailDraft
ที่สร้างในฟังก์ชันเรียกกลับให้กับผู้รับ เรื่อง เนื้อหาข้อความ และไฟล์แนบได้ล่วงหน้า หากต้องการกรอกข้อมูลฉบับร่าง ข้อมูลอาจมาจากแหล่งที่มาต่างๆ แต่มักมาจากข้อมูลที่ให้ไว้กับส่วนเสริม ข้อมูลในข้อความที่เปิด หรือข้อมูลที่รวบรวมจากบริการของบุคคลที่สาม ออบเจ็กต์เหตุการณ์ที่ส่งไปยังฟังก์ชันเรียกกลับจะประกอบด้วยรหัสข้อความแบบเปิดและข้อมูลส่วนเสริมอื่นๆ ที่คุณสามารถใช้เติมแบบร่างไว้ล่วงหน้า
คุณจะสร้างแบบร่างเป็นข้อความแบบสแตนด์อโลนใหม่หรือการตอบกลับข้อความที่มีอยู่ก็ได้ สิทธิ์นี้ควบคุมโดย Enum ของ ComposeEmailType
ที่ให้กับ setComposeAction()
คุณสามารถสร้างแบบร่างการตอบกลับเป็นการตอบกลับครั้งเดียวหรือข้อความ "ตอบกลับทั้งหมด" ได้
ฉบับร่างแบบสแตนด์อโลน
ฉบับร่างแบบสแตนด์อโลนจะเริ่มชุดข้อความใหม่ และไม่ใช่การตอบกลับข้อความใดๆ ที่มีอยู่ คุณสามารถสร้างแบบร่างแบบสแตนด์อโลนได้ด้วยฟังก์ชันบริการ Gmail อย่างใดอย่างหนึ่งต่อไปนี้
GmailApp.createDraft(recipient, subject, body)
GmailApp.createDraft(recipient, subject, body, options)
ตอบกลับฉบับร่าง
ข้อความร่างตอบกลับเป็นส่วนหนึ่งของชุดข้อความที่มีอยู่ ฉบับร่างของการตอบกลับเป็นการตอบกลับครั้งเดียวที่จะส่งไปยังผู้ส่งข้อความเท่านั้น หรือ "ฉบับร่างทั้งหมด" ฉบับร่างที่ส่งไปยังทุกคนที่ได้รับข้อความนั้น คุณสามารถสร้างข้อความร่างสําหรับตอบกลับได้โดยใช้ฟังก์ชันบริการ Gmail แบบใดแบบหนึ่งต่อไปนี้
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)
ตัวอย่าง
ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีกําหนดการดําเนินการที่สร้างฉบับร่างสําหรับการตอบกลับปุ่ม
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();
}