我是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));
例如如果您要更改卡的内容,则需要制作并退还一张将替换旧卡的新卡。
构建卡的正确方法是
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section)
.addSection(sectionTo)//; // or using section card.addSection(sectionTo); // or using section
.build();
如果相反,您尝试申请
card.addSection(sectionTo).build();
to
var card = CardService.newCardBuilder()
.setHeader(peekHeader)
.addSection(section);
变量card
将代表一个部分-将一个部分添加到一个部分将给您一个错误。
正如@ziganotschka所说,构建卡后,无法修改该卡。当您执行CardService.newCardBuilder()
时,正在创建类型为CardBuilder
的对象,但是当您执行built()
时,返回对象的类型为Card
,因此您不能再对我的对象卡(类型为[ C0])。
在第二个代码上,.addSection
已正确完成,但是由于Card
的返回对象未保存在任何地方,并且此后我返回卡对象(仍为addSection
类型),因此导致了第二个错误。这就是为什么,现在我明白了:
.build()