google-apps-script - 添加/删除电子邮件以撰写小部件时更新侧面板
问题描述
据我所知,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)
解决方案
TL;博士
读取和编写 UI 是两个独立的 UI,不能相互交互。
2 个独立的 UI
该文档在这一点上有点令人困惑,但是您可以构建两个不同的UI - 两者都是独立的,不能相互交互:
- 消息(阅读模式)
- 撰写(草稿模式)
文档的要点在于消息 UI 可以使用实例Action
通过setComposeAction
. 在回调中,您提供的操作只能创建和预填充草稿,而不是与撰写 UI 交互。
编写动作
不幸的是,Gmail 插件没有在草稿编辑时触发的事件
gmail.composeTrigger
唯一在用户时运行(请参阅文档):
- 打开插件时回复消息
- 当草稿打开时从侧边栏启动插件
runFunction
数组的 a 字段中指定SelectAction
的回调selectActions
负责构建 Add-on 的初始显示。从现在开始,更新附加 UI 的唯一方法是在用户与撰写 UI 中的小部件交互时运行UpdateDraftActionResponse
的回调返回(可以分配给它)。Action
Action
推荐阅读
- c - 我需要一个带有 C 中字符串的输入
- java - 是否可以立即更新视图的属性?
- css - 如何从引导选择中获取:焦点和:有效值,例如表单控件?
- python-3.x - Python:常量减去列表的元素以返回列表
- ionic-framework - 如何强制在 ionic 3 中加载特定方向?
- javascript - 如何按 ABC 对 javascript.map 名称数组进行排序
- r - 如何删除“||” 在字符串中作为 str_replace_all 函数不可用?
- c# - 创建单元测试以检查是否有任何类使用来自特定类/命名空间的任何方法
- javascript - 如何修复 node.js 网站中的 nodemailer“对象对象”错误?
- mysql - 为什么 CASE WHEN 在这个查询中倒退?