【问题标题】:Different results from running Google App Script manually and by triggers手动和触发器运行 Google App 脚本的不同结果
【发布时间】:2015-12-21 10:29:52
【问题描述】:

我希望每个用户(在我工作的公司)将 Gmail 数据登录到(第 3 方系统)Harvest。

我通过一个 html-webbapp 分发了一个 Apps 脚本,每个用户通过按下一个按钮来启动触发器(运行单个函数)。

我的问题是只有在手动运行时才能正常工作。触发该功能时,Gmail 数据将记录到我的用户(而不是运行它的用户)。我已经登录到一个用户(遇到这个问题)并且触发器设置正确。手动触发时,该功能正常运行。

伪代码:

var user = Session.getEffectiveUser().getEmail();
var gmailData = GmailApp.getInboxThreads(0,1)[0];
UrlFetchApp.fetch(
  "https://api.com",
  {
    "headers": {'Authorization':"hash of admin (my) user/pw"},
    "method": "post",
    "payload": "add data " + gmailData + " to user " + user
  }
);

【问题讨论】:

  • 每个用户都必须设置自己的触发器,您的触发器只对您有效。您要么要求他们打开脚本编辑器并自行设置,要么在每个人单击按钮时在脚本中进行。

标签: google-apps-script triggers gmail


【解决方案1】:

试试

Session.getEffectiveUser().getEmail();

可安装的触发器(在本例中以编程方式)在创建触发器的用户的身份验证下运行,getEffectiveUser() 返回正在处理的脚本实例的经过身份验证的用户。

【讨论】:

  • 没有变化。该功能仅在手动运行时发布给目标用户。
【解决方案2】:

Webapp 运行旧版本,结果只有一个,而手册是当前代码。更新到新版本解决了我的问题。

【讨论】:

    猜你喜欢
    • 2017-01-21
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 2022-10-13
    • 2023-02-18
    • 2020-07-10
    相关资源
    最近更新 更多