Gmail加载项错误:SubmitFormResponseMarkup不允许使用以下值:card_navigations

我有函数logoutaction(e),当使用setOnClickaction()并在Card中的TextButton上设置此功能时-可以正常工作。

但是当我使用来自“ universalactions”的相同功能时-我收到此错误:“ SubmitFormResponseMarkup不允许使用值:card_navigations ”。

功能注销操作:

function logoutaction(e) {
    revokeToken();

    var service = getOAuthService();
    service.reset();

    userProperties.setProperty('loggedIn','false');

    // Create a Navigation object to push the card onto the stack.
    // Return a built actionResponse that uses the navigation object.
    var nav = CardService.newNavigation().pushCard(loginFormBuild(e));
    return CardService.newactionResponseBuilder().setNavigation(nav).build();
}

在这里工作正常:

   var logoutButton = CardService.newTextButton()
        .setText("Logout")
        .setOnClickaction(CardService.newaction().setfunctionName("logoutaction"));
    content.addWidget(logoutButton);

但是在清单中的“ universalactions”中-它不起作用:

    "universalactions": [{
    "text": "Logout","runFunction": "logoutaction"
  }]

有什么想法吗?

zpr6j 回答:Gmail加载项错误:SubmitFormResponseMarkup不允许使用以下值:card_navigations

我们不能对简单动作和通用动作使用相同的功能。因为简单操作必须返回ActionResponse,但是通用操作必须返回UniversalActionResponse

因此,我们需要使用CardService.newActionResponseBuilder()来代替CardService.newUniversalActionResponseBuilder()

,

按照@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()函数。

本文链接:https://www.f2er.com/3110004.html

大家都在问