google-apps-script - 草稿没有通过 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"
}
],
任何人都可以建议我做错了什么,我该如何解决我的问题?
解决方案
您的问题是您创建了一个通用附加组件,而不是一个触发消息的附加组件。
您希望遵循这些建议并更改清单文件以包含必要的部分。
{
"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();
}
完成这些更改后,您应该一切顺利!
推荐阅读
- php - 将结果从 api 导入数据库
- reactjs - 样式化的 SVG 组件
- ssl - curl https://github.com 在证书链中出现自签名证书失败
- node.js - 快递不包括资产
- firebase - 在多个 Firebase 实例之间实现单点登录
- javascript - 超出可见区域的 Google Prettify 线条颜色(可预滚动)
- fortran - gfortran 编译器如何处理表达式中的数值系数?
- php - 如何在 woocommerce 中创建自定义产品类型,其中包含从数据面板中选择的类别中提取的 400 多种子产品?
- python - 将特定时间量添加到日期时间列
- java - Spring - JPA - Hibernate javax.persistence.TransactionRequiredException:没有正在进行的事务