标签: google-apps-script-addon

如何在Google Apps脚本自定义函数中获取“活动用户”的用户属性

我发布了一个 Google Apps 脚本独立电子表格插件,但在使用PropertiesService.getUserProperties()自定义函数时遇到了一些问题。

如果用户 A 安装了该附加组件并在用户属性中保存了一些数据。然后用户A将电子表格共享给用户B。当用户B运行自定义函数时,他可以获取用户A的用户属性中保存的数据。这不是我认为用户属性的工作原理。用户 A 和 B 都应该获得自己保存的数据。

那么共享电子表格的活跃用户是什么?我不希望所有电子表格查看者都获取电子表格创建者保存的数据。我在代码或“云平台项目”选项中做错了什么吗?

换句话说,如何在共享电子表格中为不同查看者获取保存在用户属性中的不同数据?

我尝试在自定义函数中获取活动用户电子邮件,但它不起作用。

请注意,我无法Session.getActiveUser在自定义函数中使用,因为Google Apps脚本自定义函数不支持会话服务。它将得到无效权限异常。

https://developers.google.com/apps-script/guides/sheets/functions#Advanced

谢谢,

google-apps google-apps-script google-apps-marketplace custom-function google-apps-script-addon

3
推荐指数
1
解决办法
1252
查看次数

如何在 Google 脚本代码中将脚本更改为 AuthMode.LIMITED?

我试图发布已创建的附加组件的新版本,但是当我尝试发布它时,我可以看到菜单、子菜单,并且可以执行附加组件图片1。问题是其他用户 -以前能够执行附加组件- 现在他们看不到子菜单,显然他们无法执行附加组件图片 2

我在 Google 上搜索了一下,正在对此进行调查,所以我发现有一种名为 AuthMode.NONE 和 AuthMode.LIMITED 的方法,我知道它们之间的区别,但我不知道 Google 脚本如何对附加组件进行分类和如何forceAuthMode 更改为 LIMITED,或者您可以给我另一个可以提供帮助的解决方案。

顺便说一句:我已经检查了我的文档是否激活了附加组件,是的,我的意思是我可以选择:附加组件 --> 管理附加组件 --> [我的附加组件] --> 管理 - -> 在本文档中使用已选中。

PD:我尝试卸载并安装附加组件,发布并重新发布新版本,我尝试了很多方法但没有解决方案。

提前致谢!

triggers google-sheets google-apps-script google-apps-script-addon

2
推荐指数
1
解决办法
1801
查看次数

AuthMode 对多个登录用户感到困惑

我在 Google Apps Script 中遇到了一个奇怪的问题,正在处理幻灯片插件。

当我在只有一个用户登录(称为用户 B)的隐身窗口中运行加载项时,一切正常。

当我在多个用户登录的情况下运行加载项(在同一个 Chrome 选项卡中将其称为用户 A 和 B)时,Apps 脚本似乎对授权感到困惑。当我尝试以用户 B 身份使用插件时(如右上角显示的配置文件所证明),插件的所有功能都失败了,我猜是因为它缺乏授权。请注意,加载项一直都安装在用户 B 的帐户上,并且它仍然可以在仅用户 B 登录的隐身窗口中运行。

关于这个的任何提示?在多重登录的情况下,有没有办法“强制”附加组件使用用户 B 的授权?

google-apps google-apps-script google-apps-script-addon

2
推荐指数
1
解决办法
221
查看次数

如何在 Gmail 插件中将卡片标题标题设为粗体?

如何在 Gmail 插件中将卡片标题标题设为粗体?我尝试了这个,但它不起作用:

function mainCardBuild(content) {
    return CardService.newCardBuilder()
        .setHeader(
            CardService.newCardHeader().setTitle('<b> MY TITLE </b>')) //doesn`t work bold
        .addSection(content)
        .build();
}
Run Code Online (Sandbox Code Playgroud)

我确信我们有机会做到这一点,因为我在 Slack Add-on 中看到了它。 Slack 中的粗体卡标题

google-apps google-apps-script google-apps-script-addon gmail-addons

2
推荐指数
1
解决办法
853
查看次数

在更改任何 Google 表格文件时调用 API 端点

我希望达到的目标:

每当我的共享驱动器上的任何谷歌工作表中的单元格(由域中的任何用户)更改时,我都想调用 API 端点并包含有关编辑了哪个单元格的信息。

我的方法:我相信 Google App Scripts Add-on 是我所需要的。为域上的所有用户安装。

我看到有“绑定”脚本和独立脚本。对于独立脚本,除了基​​于计时器和日历的触发器之外,我无法创建任何其他触发器。绑定脚本似乎永久绑定到单个工作表,不会以任何方式影响其他工作表。

我错过了什么?

我在博客上找到了一些用于制作绑定脚本的端到端教程,但没有关于通用跨域内容的教程。

google-api google-apps-script google-apps-script-addon google-drive-shared-drive

2
推荐指数
1
解决办法
1011
查看次数

2 时间触发器 - Google 应用程序脚本

我在线查看了 google 应用程序脚本可安装触发器文档(https://developers.google.com/apps-script/support),其中一个示例显示了 2 如何创建 2 个时间触发器。

function createTimeDrivenTriggers() {
  // Trigger every 6 hours.
  ScriptApp.newTrigger('myFunction')
      .timeBased()
      .everyHours(6)
      .create();

  // Trigger every Monday at 09:00.
  ScriptApp.newTrigger('myFunction')
      .timeBased()
      .onWeekDay(ScriptApp.WeekDay.MONDAY)
      .atHour(9)
      .create();
}
Run Code Online (Sandbox Code Playgroud)

我的代码:

function createTimeDrivenTriggers() {
  // Trigger every 1 hours.
  ScriptApp.newTrigger('MainFunctionDaily')
      .timeBased()
      .everyHours(1)
      .create();

  // Trigger every Friday at 13:00.
  ScriptApp.newTrigger('MainFunctionWeekly')
      .timeBased()
      .onWeekDay(ScriptApp.WeekDay.FRIDAY)
      .atHour(13)
      .create();
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试创建触发器时,出现错误:

此插件在此文档中为此 Google 用户帐户创建了太多基于时间的触发器

请指教

triggers google-apps-script google-apps-script-addon

1
推荐指数
1
解决办法
2492
查看次数

在 Google Apps 脚本对话框内显示 PDF 查看器

我想在 Google 电子表格插件对话框的对话框中显示 PDF。

可以在此处找到有关应用程序脚本对话框的更多信息

https://developers.google.com/apps-script/guides/html/

<iframe id="iframe" src="https://www.w3docs.com/uploads/media/default/0001/01/540cb75550adf33f281f29132dddd14fded85bfc.pdf"  frameborder="0" height="500px" width="100%"></iframe>
Run Code Online (Sandbox Code Playgroud)

当我检查时,我看到消息Resource 被解释为 Document 但使用 MIME 类型 application/pdf 传输:“ https://www.w3docs.com/uploads/media/default/0001/01/540cb75550adf33f281f29132dddd14fded85bfc.pdf ”。

html javascript google-apps-script google-apps-script-addon

1
推荐指数
1
解决办法
1135
查看次数

分发Google Apps脚本并推送更新

在我们的组织中,我们使用Google电子表格作为内部应用的数据输入.我创建了一个Google Apps脚本,以便于修改电子表格.

如您所见,此脚本依赖于电子表格格式,并提供仅适用于我们组织的特定用途.

我的问题是如何自动推送所有使用它的电子表格实例的更改?

我可以将脚本添加到脚本库但我认为它不适合这些类型的脚本,如果主副本的任何更改将被推送到客户端,我也找不到信息.

我看到的另一个选项是创建一个包含内部脚本的电子表格模板,但同样会推送更改吗?

google-sheets google-apps-script google-apps-script-addon

0
推荐指数
1
解决办法
726
查看次数