একটি অ্যাড-অনে আপনি লিঙ্ক করা অ্যাকশন সহ উইজেট তৈরি করতে পারেন। আপনি একটি অ্যাকশন ব্যবহার করে নতুন ইমেল ড্রাফট তৈরি করতে পারেন, যা ঐচ্ছিকভাবে অ্যাড-অন UI-তে প্রবেশ করানো তথ্য বা খোলা কোনো মেসেজের তথ্য দিয়ে পূরণ করা যায়। উদাহরণস্বরূপ, আপনার অ্যাড-অনের মেসেজ UI- তে একটি বাটন থাকতে পারে যা বর্তমানে খোলা মেসেজটির একটি উত্তর তৈরি করে, যেখানে অ্যাড-অনের তথ্য আগে থেকেই পূরণ করা থাকে।
যখন মেসেজ তৈরির কোনো অ্যাকশন ট্রিগার করা হয়, তখন Gmail ড্রাফটটি তৈরি করে ফেরত পাঠানোর জন্য একটি কলব্যাক ফাংশন এক্সিকিউট করে। এরপর Gmail সেই ড্রাফটটি তার UI-তে একটি সাধারণ ইমেল কম্পোজ উইন্ডোতে প্রদর্শন করে, যা ব্যবহারকারী প্রয়োজন অনুযায়ী এডিট করে পাঠাতে পারেন।
একটি খসড়া বার্তা তৈরি করার জন্য একটি অ্যাকশন কনফিগার করুন।
কোনো উইজেট নির্বাচিত হলে যেন খসড়া তৈরির কাজ শুরু হয়, তা কনফিগার করতে হলে আপনাকে নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করতে হবে:
নিশ্চিত করুন আপনার ম্যানিফেস্টে
action.composeস্কোপ অন্তর্ভুক্ত আছে:https://www.googleapis.com/auth/gmail.addons.current.action.composeএর পরিবর্তে আপনি আরও নমনীয় একটি স্কোপ ব্যবহার করতে পারেন, কিন্তু কেবলমাত্র তখনই তা করা উচিত যখন সেই স্কোপটি একান্তই অপরিহার্য।
একটি
Actionঅবজেক্ট তৈরি করুন এবং এটিকে আপনার সংজ্ঞায়িত একটি কলব্যাক ফাংশনের সাথে যুক্ত করুন।উইজেটটির
setComposeActionউইজেট হ্যান্ডলার ফাংশনটি কল করুন, এবং এটিকেActionঅবজেক্টটি ওComposeEmailTypeনির্দিষ্ট করে দিন।ড্রাফট-বিল্ডিং অ্যাকশনটি সম্পাদন করার জন্য কলব্যাক ফাংশনটি তৈরি করুন। এই ফাংশনটিকে আর্গুমেন্ট হিসেবে একটি ইভেন্ট অবজেক্ট দেওয়া হয়। কলব্যাক ফাংশনটিকে অবশ্যই নিম্নলিখিত কাজগুলো করতে হবে:
- একটি
GmailDraftঅবজেক্ট তৈরি করুন। -
ComposeActionResponseBuilderক্লাস এবংGmailDraftঅবজেক্ট ব্যবহার করে একটিComposeActionResponseঅবজেক্ট তৈরি করুন। - নির্মিত
ComposeActionResponseটি ফেরত দিন।
- একটি
আপনি কলব্যাক ফাংশনে তৈরি করা GmailDraft টি প্রাপক, বিষয়, বার্তার মূল অংশ এবং অ্যাটাচমেন্ট দিয়ে আগে থেকেই পূরণ করে রাখতে পারেন। ড্রাফটটি পূরণ করার জন্য ডেটা যেকোনো উৎস থেকে আসতে পারে, তবে সাধারণত এটি অ্যাড-অনটিকে দেওয়া তথ্য, খোলা বার্তার তথ্য, অথবা কোনো তৃতীয় পক্ষের পরিষেবা থেকে সংগৃহীত তথ্য থেকে আসে। কলব্যাক ফাংশনে পাঠানো ইভেন্ট অবজেক্টটিতে খোলা বার্তার আইডি এবং অন্যান্য অ্যাড-অন তথ্য থাকে, যা আপনি ড্রাফটটি আগে থেকে পূরণ করতে ব্যবহার করতে পারেন।
আপনি খসড়াটি একটি নতুন স্বতন্ত্র বার্তা হিসাবে অথবা বিদ্যমান কোনো বার্তার উত্তর হিসাবে তৈরি করতে পারেন। এটি setComposeAction এ প্রদত্ত ComposeEmailType enum দ্বারা নিয়ন্ত্রিত হয়। আপনি উত্তরের খসড়াগুলো একক উত্তর অথবা 'reply-all' বার্তা হিসাবে তৈরি করতে পারেন।
স্বতন্ত্র খসড়া
একটি স্বতন্ত্র ড্রাফট একটি নতুন থ্রেড শুরু করে এবং এটি কোনো বিদ্যমান বার্তার উত্তর নয়। আপনি নিম্নলিখিত Gmail পরিষেবা ফাংশনগুলির মধ্যে একটি ব্যবহার করে একটি স্বতন্ত্র ড্রাফট তৈরি করতে পারেন:
-
GmailApp.createDraft(recipient, subject, body) -
GmailApp.createDraft(recipient, subject, body, options)
উত্তরের খসড়া
একটি রিপ্লাই ড্রাফট হলো একটি বিদ্যমান মেসেজ থ্রেডের অংশ। রিপ্লাই ড্রাফটগুলো হয় একক উত্তর, যা শুধুমাত্র মেসেজের প্রেরকের কাছে পাঠানো হয়, অথবা "রিপ্লাই অল" ড্রাফট, যা সেই মেসেজটি পাওয়া প্রত্যেকের কাছে পাঠানো হয়। আপনি জিমেইলের এই সার্ভিস ফাংশনগুলোর যেকোনো একটি ব্যবহার করে একটি রিপ্লাই ড্রাফট তৈরি করতে পারেন:
-
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 previously
// specified.
return CardService.newComposeActionResponseBuilder()
.setGmailDraft(draft).build();
}