首页 > 解决方案 > 添加/删除电子邮件以撰写小部件时更新侧面板

问题描述

据我所知,Gmail 插件可以在两个地方显示,一个在左侧面板中,另一个在撰写消息小部件中。发现只有在打开电子邮件时才能更新侧面板。所以基本上我想在用户在撰写小部件中添加/删除电子邮件时更新侧面板。这可能吗?

在此处输入图像描述

显现

"gmail": {
  "contextualTriggers": [{
    "unconditional": {
    },
    "onTriggerFunction": "onGmailMessage"
  }],
  "composeTrigger": {
    "selectActions": [{
      "text": "Wired2Perform",
      "runFunction": "onGmailMessage"
    }],
    "draftAccess": "METADATA"
  }
}

触发功能

function onGmailMessage(event) {
  console.log(event);
  var emails = extractEmailsFromMessage(event);
  console.log(emails);
  if(emails.length > 0) {
    var w2pData = w2pClient().getUsersList(emails);
    return buildW2pCommunicationCard(w2pData);
  } else {
    // add email for more info
    return createHomeCard();
  }
}

添加/删除电子邮件时不调用 console.log(event)

标签: google-apps-scriptadd-on

解决方案


TL;博士

读取和编写 UI 是两个独立的 UI,不能相互交互。

2 个独立的 UI

该文档在这一点上有点令人困惑,但是您可以构建两个不同的UI - 两者都是独立的,不能相互交互:

  • 消息(阅读模式)
  • 撰写(草稿模式)

文档的要点在于消息 UI 可以使用实例Action通过setComposeAction. 在回调中,您提供的操作只能创建和预填充草稿,而不是与撰写 UI 交互。

编写动作

不幸的是,Gmail 插件没有在草稿编辑时触发的事件

gmail.composeTrigger唯一在用户时运行(请参阅文档):

  1. 打开插件时回复消息
  2. 当草稿打开时从侧边栏启动插件

runFunction数组的 a 字段中指定SelectAction的回调selectActions负责构建 Add-on 的初始显示。从现在开始,更新附加 UI 的唯一方法是在用户与撰写 UI 中的小部件交互时运行UpdateDraftActionResponse的回调返回(可以分配给它)。ActionAction


推荐阅读