【问题标题】:Multiple emails selected messageMetadata.accessToken多封电子邮件被选中 messageMetadata.accessToken
【发布时间】:2018-09-23 22:29:46
【问题描述】:

是否可以通过插件处理多个选定的电子邮件? 来自 Google 的代码显示了如何只处理一封选定的电子邮件。我想 'e' 将是某种访问令牌数组,但我不知道如何访问它。

function getContextualAddOn(e) {
  var accessToken = e.messageMetadata.accessToken;
  Logger.log("token:"+ accessToken);
  GmailApp.setCurrentMessageAccessToken(accessToken);
  var messageId = e.messageMetadata.messageId;

  var card = createCard();
  return [card.build()];
}

谢谢。

【问题讨论】:

  • 我认为仅选择一封电子邮件就无法打开附加组件 - 我相信您只能通过打开电子邮件来触发您的附加组件。
  • 您好,没错,但您可以在您的插件中阅读所有类型的电子邮件,即使您只打开一个插件也是如此。例如,选择具有特定标签的所有电子邮件,或所有已加星标的电子邮件。似乎没有选择所有已勾选的选项,即启用复选框。
  • 这就是我所说的。 “勾选”/选择电子邮件与打开一封电子邮件,然后选择您的插件不同。
  • 您不理解这个问题:我知道您可以通过打开一封电子邮件来触发插件,但在插件代码中,您可以选择其他电子邮件,例如所有带有特定标签的电子邮件,或所有已加星标的电子邮件。所以这里是这样的场景:你勾选 5 封电子邮件,然后打开一封电子邮件,然后打开插件。在插件中,您选择所有已勾选的电子邮件,即 5 封电子邮件。如果 5 封电子邮件具有相同的标签或为示例加星标,您可以选择它们,但我看不到选择已勾选电子邮件的方法。希望这更清楚。
  • 再一次,你没有理解这个问题。

标签: google-apps-script gmail-addons


【解决方案1】:

您的 Apps 脚本代码永远不会在客户端设备上运行,在客户端设备上,邮件是在 Gmail 用户界面中选择的 - 它在 Google 的服务器上运行。您无法从附加组件访问 UI 信息(没有 GmailApp.getSelectedThreads()CardService.getActiveEmails() 等)。您只能在同一线程(或邮箱,取决于您的add-on's scopes)中访问打开 消息/草稿和其他人。

您触发的回调函数收到的event object 将只有一个访问令牌。在添加 additional manifest triggers 之前(目前只有 contextualcompose 存在),这不会改变。

由于这不是 Google,因此这里没有人可以告诉您是否或何时可能会或可能不会添加其他触发器。你最好的选择是request the feature

【讨论】:

  • 嗨,好的,谢谢 tehhowch,这是我的问题。因为即使您只打开了一封电子邮件,也有 getUserLabelByName、getStarredThreads 等方法可以访问其他电子邮件,所以没有“getCheckedThreads”方法似乎很奇怪。但从你所说的,加星标的线程可能是谷歌服务器上的一个标志,而勾选一个复选框只是一个客户端 UI 操作,它不能从 appscripts 访问,尽管可以说我认为加星标线程也是一个客户端用户界面操作。但无论如何,你回答了这个问题。谢谢!
猜你喜欢
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多