动态添加部分到卡片
Add sections dynamically to card
我是 Apps 脚本的新手,有点迷路,有没有办法在卡片上动态添加一个部分?我正在尝试这个:
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section).build();
card.addSection(sectionTo);
我得到 TypeError: card.addSection is not a function
如果我尝试:
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section);
card.addSection(sectionTo).build();
我收到另一个错误:
The value returned from Apps Script has a type that cannot be used by the add-ons platform. Also make sure to call build on any builder before returning it. Value: values {
struct_value {
}
}
更新:
部分定义如下:
var section = CardService.newCardSection()
.addWidget(CardService.newTextParagraph().setText("The email is from: " + from));
var sectionTo = CardService.newCardSection()
.addWidget(CardService.newTextParagraph().setText("To: " + to));
卡片一旦构建,很遗憾无法再对其进行修改。
如果例如在您想要更改卡片内容的活动中 - 您需要构建并 return 一张新卡片来替换旧卡片。
构建卡片的正确方法是
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section)
.addSection(sectionTo)//; // or using section card.addSection(sectionTo); // or using section
.build();
如果您尝试申请
card.addSection(sectionTo).build();
到
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section);
变量 card
将代表一个部分 - 将一个部分添加到一个部分将会出错。
正如@ziganotschka 所说,建卡后,此卡无法修改。当您执行 CardService.newCardBuilder()
时,您正在创建类型为 CardBuilder
的对象,但是当您执行 built()
时,return 对象的类型为 Card
,因此您不能再对我的对象卡执行 .addSection
(类型为 Card
)。
在第二个代码中,addSection
已正确完成,但由于 .build()
中的 return 对象未保存在任何地方,之后我 returning 卡片对象(仍键入 CardBuilder
),它导致了第二个错误。这就是为什么,现在我明白了:
The value returned from Apps Script has a type that cannot be used by the add-ons platform. Also make sure to call build on any builder before returning it.
我是 Apps 脚本的新手,有点迷路,有没有办法在卡片上动态添加一个部分?我正在尝试这个:
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section).build();
card.addSection(sectionTo);
我得到 TypeError: card.addSection is not a function
如果我尝试:
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section);
card.addSection(sectionTo).build();
我收到另一个错误:
The value returned from Apps Script has a type that cannot be used by the add-ons platform. Also make sure to call build on any builder before returning it. Value: values {
struct_value {
}
}
更新:
部分定义如下:
var section = CardService.newCardSection()
.addWidget(CardService.newTextParagraph().setText("The email is from: " + from));
var sectionTo = CardService.newCardSection()
.addWidget(CardService.newTextParagraph().setText("To: " + to));
卡片一旦构建,很遗憾无法再对其进行修改。
如果例如在您想要更改卡片内容的活动中 - 您需要构建并 return 一张新卡片来替换旧卡片。
构建卡片的正确方法是
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section)
.addSection(sectionTo)//; // or using section card.addSection(sectionTo); // or using section
.build();
如果您尝试申请
card.addSection(sectionTo).build();
到
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section);
变量 card
将代表一个部分 - 将一个部分添加到一个部分将会出错。
正如@ziganotschka 所说,建卡后,此卡无法修改。当您执行 CardService.newCardBuilder()
时,您正在创建类型为 CardBuilder
的对象,但是当您执行 built()
时,return 对象的类型为 Card
,因此您不能再对我的对象卡执行 .addSection
(类型为 Card
)。
在第二个代码中,addSection
已正确完成,但由于 .build()
中的 return 对象未保存在任何地方,之后我 returning 卡片对象(仍键入 CardBuilder
),它导致了第二个错误。这就是为什么,现在我明白了:
The value returned from Apps Script has a type that cannot be used by the add-ons platform. Also make sure to call build on any builder before returning it.