首页 > 解决方案 > 草稿没有通过 gmail、谷歌应用脚​​本中新插入的值进行更新

问题描述

我想在我的 gmail 中使用谷歌应用脚​​本更新或替换或插入现有草稿。我在下面有一个代码,但它没有在现有草稿中插入任何文本。

我想做的是使用谷歌应用脚​​本更新或插入或替换我现有的草稿。

function buildAddOn(e)
{
  return generatedDrafts();
}

function generatedDrafts()
{
  tex = 'This needs to be inserted';

  var card = CardService.newCardBuilder();
  var cardSection = CardService.newCardSection().setHeader('Texts');

  cardSection.addWidget(CardService.newTextButton().setText(tex).setOnClickAction(CardService.newAction().setFunctionName('applyText')
  .setParameters({'updatedText':tex})));

  return card.addSection(cardSection).build();
}


function applyText(e)
{
  content = e.parameters.updatedText;

  var response = CardService.newUpdateDraftActionResponseBuilder().setUpdateDraftBodyAction(CardService.newUpdateDraftBodyAction()
  .addUpdateContent(content, CardService.ContentType.TEXT).setUpdateType(CardService.UpdateDraftBodyType.IN_PLACE_INSERT)).build();

 return response; 
}

appscript 宣言看起来像这样

"gmail": {
    "contextualTriggers": [
        {
            "unconditional": {},
            "onTriggerFunction": "buildAddOn"
        }
    ],

任何人都可以建议我做错了什么,我该如何解决我的问题?

标签: google-apps-scriptgmail-addons

解决方案


您的问题是您创建了一个通用附加组件,而不是一个触发消息的附加组件。

您希望遵循这些建议并更改清单文件以包含必要的部分。

{
  "oauthScopes": [
    //...
    "https://www.googleapis.com/auth/gmail.addons.current.action.compose",
    //...
  ],
  "gmail": {
    /...
    "contextualTriggers": [{
      /...
    }],
    "composeTrigger": {
      "selectActions": [
        {
          "text": "Insert Text on Emails",
          "runFunction": "insertTextAction"
        }
      ],
      "draftAccess": "METADATA"
    },
}

你的代码应该有一个insertTextAction函数,它创建一个带有返回操作的卡片UpdateDraftActionResponse

function insertTextAction(e) {
  return generatedDrafts();
}

完成这些更改后,您应该一切顺利!


推荐阅读