【问题标题】:Gmail Add-on trigger criteriaGmail 插件触发条件
【发布时间】:2018-02-17 16:05:15
【问题描述】:

有人能准确描述 Gmail 插件脚本的触发条件吗?显然,每次用户在 Gmail 对话之间导航时都不会调用触发器。

我能找到的唯一文档是https://developers.google.com/gmail/add-ons/how-tos/building#note1,其中指出

唯一可用的上下文触发类型是无条件的,无论内容如何,​​它都会触发所有电子邮件。

我将这解释为每次用户导航到不同的 gmail 对话时都会调用触发器,但事实并非如此:

当我第一次导航到某个 Gmail 对话时,插件触发器会触发。当我使用“Newer”或“Older”尖括号按钮导航到另一个对话时,再次为新对话调用触发器。但是,当我使用尖括号按钮将 返回 导航到第一页时,附加触发器不会触发 。 (很容易通过在创建每个 UI 卡时显示时间戳来显示这一点。)似乎有某种内部缓存正在进行 - 有什么方法可以禁用它,或者运行我的附加脚本 each用户在 Gmail 对话之间导航的时间

【问题讨论】:

  • 没有响应,正如预期的那样。典型的 Google 将支持问题直接发送到 Stack Overflow,然后忽略它们。令人失望,但并不令人惊讶。我们靠自己...
  • 考虑提交一份关于 Gmail 插件问题跟踪器的错误报告:issuetracker.google.com/issues?q=componentid:325133

标签: google-apps-script gmail-addons


【解决方案1】:

您可以使用 ActionResponseBuilder.setStateChanged() 来清除缓存

链接:https://developers.google.com/gmail/add-ons/how-tos/interactions

【讨论】:

  • 我还没有验证这是否有效,但它确实看起来像是要走的路。一年半前我切换到inboxsdk
【解决方案2】:

目前,Google Apps 脚本没有针对 Gmail 事件的触发器,因此触发器不会在每次用户导航到不同的 Gmail 对话时都调用。每当打开新消息时,它将调用触发器,上下文触发器。您还可以试用在每个时间间隔后调用的时间驱动触发器。要使用时间驱动的触发器,请在 https://script.google.com/ 上打开您的项目。在 Apps 脚本编辑器中,导航至 编辑 -> 所有触发器。如果没有触发器,则设置一个并保存。看这个例子Create Time-driven trigger in Gmail-add on

更多信息请参考此链接How do I detect when I view an email in gmail with google-apps-script script? I think this might be helpful.

【讨论】:

  • Gmail 插件中似乎没有时间驱动的触发器:developers.google.com/gmail/add-ons/guides/restrictions 你确认@JaiPrak 吗?
  • Google Apps 脚本没有简单或可安装的触发器,但它有时间驱动的触发器。如何使用它们,我正在更新我的答案。
  • 您说的是一般的 Google 应用脚本还是 Gmail 插件?后者似乎没有时间驱动:developers.google.com/gmail/add-ons/guides/restrictions
  • Gmail 插件需要一个清单才能让其他用户使用它,在清单中我认为不可能放置时间驱动的触发器。
  • 是的,你可以。无需将时间驱动触发器放在清单中,除了上下文触发器之外,我还没有看到任何在清单中设置时间驱动触发器的示例。一旦尝试在您的项目和触发方法中创建简单的时间触发器,只需将其放在那里function myTrigger(){ Logger.log('Some message'); } 设置每分钟的触发时间。每分钟您都会看到记录器消息以及触发调用的相应时间。
猜你喜欢
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
相关资源
最近更新 更多