【发布时间】:2022-01-06 10:05:41
【问题描述】:
最近我的脚本在第一次运行后开始失败。也就是说:第一次运行成功,下一次运行失败,在浏览器的开发工具中可以看到错误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"
}
}
}
}
code.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,但此类问题存在多年,没有任何修复或解决方法。我希望能找到一些解决方法,或者至少是一种解决方法。
【问题讨论】:
-
“但此类问题会存在多年,没有任何修复或解决方法”这对于某些问题来说是正确的,但并非对所有问题都适用。给问题加星标有助于告诉谷歌有多少人对此感兴趣,但还有其他因素被认为可以“修复”它。您的问题的好处是它已经“已分配”(许多问题从未达到此状态)
标签: google-apps-script add-on google-slides google-workspace-add-ons