Google apps script Gmail加载项错误:SubmitFormResponseMarkup具有不允许的值:card\u导航
我有功能Google apps script Gmail加载项错误:SubmitFormResponseMarkup具有不允许的值:card\u导航,google-apps-script,google-apps,gmail-addons,google-apps-script-addon,Google Apps Script,Google Apps,Gmail Addons,Google Apps Script Addon,我有功能logoutAction(e),当使用setOnClickAction()并在Card中的text按钮上设置此功能时,它工作正常 但是,当我使用来自universalActions的相同函数时,我得到以下错误: SubmitFormResponseMarkup具有不允许的值:card\u导航 这里很好: var logoutButton = CardService.newTextButton() .setText("Logout") .setOnCl
logoutAction(e)
,当使用setOnClickAction()
并在Card
中的text按钮上设置此功能时,它工作正常
但是,当我使用来自universalActions
的相同函数时,我得到以下错误:
SubmitFormResponseMarkup具有不允许的值:card\u导航
这里很好:
var logoutButton = CardService.newTextButton()
.setText("Logout")
.setOnClickAction(CardService.newAction().setFunctionName("logoutAction"));
content.addWidget(logoutButton);
但是从清单中的universalaactions
,它不起作用:
"universalActions": [{
"text": "Logout",
"runFunction": "logoutAction"
}]
有什么想法吗?我们不能将同一功能用于简单操作和通用操作。因为简单操作必须返回ActionResponse
,但通用操作必须返回universalaactionresponse
因此,我们需要使用CardService.newActionResponseBuilder()
而不是CardService.newUniversalActionResponseBuilder()
我们不能对简单操作和通用操作使用相同的函数。因为简单操作必须返回ActionResponse
,但通用操作必须返回universalaactionresponse
因此,我们需要使用CardService.newActionResponseBuilder()
而不是@Roman建议的CardService.newUniversalActionResponseBuilder()
来执行通用操作的导航操作。您的代码应更改为
function logoutAction(e) {
revokeToken();
var service = getOAuthService();
service.reset();
userProperties.setProperty('loggedIn', 'false');
return CardService.newUniversalActionResponseBuilder().displayAddOnCards([loginFormBuild(e).build()]).build();
}
根据函数loginFormBuild(e)返回的内容,您可能需要也可能不需要它的相关build()函数。正如@Roman所建议的,在执行通用操作的导航操作时,您应该使用UniversalActionResponseBuilder()。您的代码应更改为
function logoutAction(e) {
revokeToken();
var service = getOAuthService();
service.reset();
userProperties.setProperty('loggedIn', 'false');
return CardService.newUniversalActionResponseBuilder().displayAddOnCards([loginFormBuild(e).build()]).build();
}
根据函数loginFormBuild(e)返回的内容,您可能需要也可能不需要它的相关build()函数。欢迎使用Stack Overflow,我试图重现您的错误,但我注意到您的函数logoutAction(e)
首先调用了两个您没有提供的其他函数,它们是revokeToken()代码>和getOAuthService()代码>。你能把它们放在你的问题里吗?这将使故障排除更加容易。@albertovielma非常感谢您的回复。我刚刚找到了解决办法:我们不能将同一个函数用于简单操作和通用操作。因为简单操作必须返回ActionResponse
,但通用操作必须返回universalaactionresponse
Ok!我很高兴听到你能找到它。欢迎来到Stack Overflow,我试图重现你的错误,但是我注意到你的函数logoutAction(e)
首先调用了另外两个你没有提供的函数,它们是revokeToken()代码>和getOAuthService()代码>。你能把它们放在你的问题里吗?这将使故障排除更加容易。@albertovielma非常感谢您的回复。我刚刚找到了解决办法:我们不能将同一个函数用于简单操作和通用操作。因为简单操作必须返回ActionResponse
,但通用操作必须返回universalaactionresponse
Ok!我很高兴听到你能找到它。