GMail Google Apps Script Plugin“Apps Script 返回的值具有附加组件平台无法使用的类型”

Jos*_*mbs 2 gmail google-apps google-apps-script

在过去 24 小时内,我运行的一个以前工作的GMail 插件开始失败。

我一直将其剥离,只尝试从文档中获取示例:

var action = CardService.newAction().setFunctionName('composeEmailCallback');
CardService.newTextButton()
    .setText('Compose Email')
    .setComposeAction(action, CardService.ComposedEmailType.REPLY_AS_DRAFT);

// ...

function composeEmailCallback() {
  var thread = GmailApp.getThreadById(e.threadId);
  var draft = thread.createDraftReply('This is a reply');
  return CardService.newComposeActionResponseBuilder()
      .setGmailDraft(draft)
      .build();
}
Run Code Online (Sandbox Code Playgroud)

在 BUILD 上(不是按下按钮),以前工作的 GMail Addon 显示错误消息:

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 {
  proto_value {
    type_url: "type.googleapis.com/caribou.api.proto.addons.templates.publicapi.ContextualAddOnMarkup.Card"
    value: "...(omitted)"
  }
}
Run Code Online (Sandbox Code Playgroud)

这是一个新的已知问题吗?有没有人有一些故障排除步骤可以分享?

小智 7

对我来说,错误是由未将打开的链接列入白名单引起的。例如,如果您有这样的代码:

CardService.newOpenLink().setUrl(url)
Run Code Online (Sandbox Code Playgroud)

然后 'url' 返回的链接必须在 appscript 清单的openLinkUrlPrefixes列表中列入白名单,如下所示:

"openLinkUrlPrefixes": [
    "https://*.example.com"
]
Run Code Online (Sandbox Code Playgroud)