Google Add-Ons已转向使用CardService小部件。我正在尝试创建一个下拉菜单,但不推荐使用ListBox类。文档将我转发给HTML服务,但是没有关于如何在CardServices上下文中使用它们的文档。这是我的代码:
GetContextualAddOn.gs
function createReply(e) {
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var messageId = e.messageMetadata.messageId;
var message = GmailApp.getMessageById(messageId);
var draft = message.createDraftReply("Got your message");
return CardService.newComposeActionResponseBuilder()
.setGmailDraft(draft).build();
}
function getContextualAddOn() {
var card = CardService.newCardBuilder();
card.setHeader(CardService.newCardHeader().setTitle('Respond to Email'));
var section = CardService.newCardSection();
var action = CardService.newAction().setFunctionName('createReply');
function doGet() {
return HtmlService.createHtmlOutputFromFile('dropdown');
}
section.addWidget(CardService
.newTextButton()
.setText('Respond')
.setComposeAction(action, CardService.ComposedEmailType.REPLY_AS_DRAFT));
card.addSection(section);
return [card.build()];
}
上面显示的doGet()方法正在尝试访问我创建的dropdown.html文件:
**dropdown.html**
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<p>test</p>
</body>
</html>
如何将HTML集成到我当前的card.build中?我是否应该采用不同的方式,如果是这样,有人可以提供代码示例吗?
答案 0 :(得分:0)
CardService服务只能与Gmail附加组件一起使用。它们不适用于使用Apps脚本构建的Google文档插件或网络应用。
答案 1 :(得分:0)
在我看来,您还无法在Gmail附加组件中使用自定义HTML。您可以使用HTML服务在Google文档/表格插件中使用它们。
在Gmail加载项中,您可以使用卡片服务中的正确选择输入来创建下拉字段。 官方文件:https://developers.google.com/apps-script/reference/card-service/selection-input
将选择输入类型用作 CardService.SelectionInputType.DROPDOWN
以下是一个代码示例,可帮助您入门:
var card = CardService.newCardBuilder();
card.setHeader(CardService.newCardHeader().setTitle('Dropdown Sample Card'));
var dropdownSection = CardService.newCardSection();
var dropdown = CardService.newSelectionInput()
.setType(CardService.SelectionInputType.DROPDOWN)
.setTitle("A Dropdown. Only a single selection is allowed.")
.setFieldName("dropdown_field")
.addItem("option one title", "option_one_value", true)
.addItem("option two title", "option_two_value", false)
.addItem("option three title", "option_three_value", false);
dropdownSection.addWidget(dropdown);
card.addSection(dropdownSection);
return [card.build()];