最近我的脚本在第一次运行后开始失败。换句话说:第一次运行成功,下一次失败,在浏览器的开发工具中可以看到错误 400“请求包含无效参数”。
这是一个可靠地重现问题的小代码示例:
appscript.json
{
"timeZone": "Europe/Riga",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"addOns": {
"common": {
"name": "A simple test script",
"logoUrl": "https://www.gstatic.com/images/icons/material/system/1x/pets_black_48dp.png"
},
"slides": {
"homepageTrigger": {
"runFunction": "onSlidesEditorHomepage"
}
}
}
}
代码.gs
function onSlidesEditorHomepage() {
var card = CardService.newCardBuilder()
.addSection(
CardService.newCardSection().addWidget(
CardService.newDecoratedText()
.setText("Slides...")
.setButton(
CardService.newTextButton()
.setText('Move a slide')
.setOnClickAction(CardService.newAction().setFunctionName('onMoveClick'))
.setTextButtonStyle(CardService.TextButtonStyle.FILLED)
.setDisabled(false)
)
)
);
return card.build();
}
function onMoveClick() {
let p = SlidesApp.getActivePresentation();
let slides = p.getSlides();
slides[1].move(0); // move the 2nd slide to the beginning
// appendSlide function hangs in the same way
// let p = SlidesApp.getActivePresentation();
// let slides = p.getSlides();
// p.appendSlide(slides[0]); // inserts a copy of the slide
return CardService.newActionResponseBuilder()
.setNotification(CardService.newNotification()
.setText("The slides has been moved"))
.build();
}
重现问题的步骤:
- 打开包含 5 张幻灯片的幻灯片演示文稿
- 第一次单击“移动幻灯片”按钮
- 第二次单击“移动幻灯片”按钮
- 第三次单击“移动幻灯片”按钮
第一次移动幻灯片。任何连续运行都失败并出现控制台错误:400“请求包含无效参数”。
请注意,此代码和类似代码在 2021 年 9 月有效。
更新:我还向 Google 幻灯片问题跟踪器提交了这个错误:https ://issuetracker.google.com/issues/210299318但此类问题存在多年,没有任何修复或解决方法。我希望找到一些修复或至少是一种解决方法。