Как добавить тексты / html в текущий созданный черновик в Gmail Addons в реальном времени

У меня есть этот сценарий, когда пользователь нажимает текстовую кнопку LINK:

  1. Если поле черновиков не открыто, создайте новый черновик ответа и добавьте ссылку.
  2. Если окно черновика открыто, просто добавьте нужный текст к написанным пользователем текстам.

Я мог бы создать новый черновик с нужным текстом, но у меня возникли некоторые трудности, чтобы понять второй сценарий! Я мог бы обновить созданный черновик, но в фоновом режиме и пользователь не сможет увидеть эти изменения, пока он не перейдет в папку черновиков и не откроет черновик сообщения!

//Build the link text button
var appendLink = CardService.newTextButton().setText("Link").setComposeAction(CardService.newAction().setFunctionName("appendTemplateLinkBtnAction").setParameters({templateLink:theCustomizedTemplateLinkText}), CardService.ComposedEmailType.REPLY_AS_DRAFT);

//-----------------------------------------------------------------//
//Append the customized template link button action 
function appendTemplateLinkBtnAction(e){  
  //Get the access token
  var theAccessToken = e.messageMetadata.accessToken;
  GmailApp.setCurrentMessageAccessToken(theAccessToken);

  var theTemplateLink = e.parameters.templateLink;
  var theMessageId = e.messageMetadata.messageId;
  var theMessage = GmailApp.getMessageById(theMessageId);
  var theDraft = theMessage.createDraftReply(theTemplateLink);

  //Build the draft
  return CardService.newComposeActionResponseBuilder().setGmailDraft(theDraft).build();
}

person Mohammad AlBanna    schedule 08.04.2018    source источник
comment
Что вы пробовали до сих пор для второго сценария? Этот код выглядит так, как будто это только для первого сценария   -  person tehhowch    schedule 08.04.2018
comment
@tehhowch Я пробовал использовать функцию update, но она не меняет тексты в реальном времени на глазах у пользователя. Обновить документ.   -  person Mohammad AlBanna    schedule 08.04.2018


Ответы (1)


Для 1-й части вы можете предоставить варианты вашего проекта.

  var draft = GmailApp.createDraft(
    email,
    subject,
    '',
    {
      htmlBody: errorText + body,
      attachments: []
    }
  )
  return CardService.newComposeActionResponseBuilder()
    .setGmailDraft(draft).build();
person Pedro Vieira    schedule 12.04.2018
comment
Спасибо! Но я разобрался с первой ситуацией и отлично работает. Не знаю, как исправить второй сценарий. Если пользователь открыл окно раньше, я не смогу снова создать черновик или добавить текст. - person Mohammad AlBanna; 16.04.2018