- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法在我的 google 帐户中运行任何应用程序脚本 - 即使是我创建的应用程序脚本绑定(bind)到我创建的新文档。当我这样做时,我收到“此应用程序已被阻止”错误。请注意,这与提到的“为此应用程序暂时禁用登录”失败模式不同 elsewhere ,并且该问题的解决方案对这个问题没有影响。
为了测试,我在登录到我的个人谷歌帐户时创建了一个新的电子表格,并输入值 ONE
在单元格中 A1
...
然后我打开了Tools->Script
编辑器从此电子表格的菜单栏中输入以下简单脚本...
然后单击脚本编辑器菜单栏中的运行图标,并从下拉列表中选择函数“myFunction”。
我收到一个“需要授权”的弹出窗口,所以我点击“查看权限”...
然后我得到一个“选择一个帐户”弹出窗口并单击我的帐户(唯一登录的帐户,以及我在创建工作表和脚本时登录的帐户)...
然后我得到一个“应用程序阻止”弹出窗口。检查执行日志显示脚本没有运行。
是什么导致了这个弹出窗口,我该如何防止它以便我可以运行应用程序脚本?
注意:我看到许多其他问题描述了这个问题的更复杂版本,但没有一个有有用的答案。我希望这个问题的超简单版本将有助于缩小范围并获得解决方案。
更多意外行为:
如果我将代码放入 onLoad()
功能它工作正常,甚至从不要求我授权。
如果我输入此代码:
...然后退出并重新加载工作表,然后我在执行日志中得到它......
同样,这根本没有授权弹出窗口。工作表加载时不会中断,然后条目会出现在执行日志中。因此,这似乎不是某处没有正确权限的情况,因为代码显然可以访问工作表。
旧版编辑器
旧版编辑器下的相同行为...
其他账户
我可以在不同的 google 帐户上重复这些完全相同的步骤并且它工作正常,所以这个问题似乎与我的帐户有关。互联网上的许多其他人也注意到了同样的发现。似乎有一些隐藏的(可能是无意的)设置附加到以某种方式切换的帐户上,然后该帐户无法手动授权脚本运行。
改变项目
我检查了一下,这个脚本按预期在“默认”项目中......
根据这个page ,
For most applications and scripts, you never need to see or adjust this default GCP project—Apps Script handles all the necessary interactions with the Google Cloud Platform automatically.
最佳答案
不幸的是,那里没有好的答案。很多像我这样的人在一个随机的早晨醒来,发现他们无法再在他们的帐户中运行任何新的应用程序脚本。
我找到了一个很好的解决方法......但会让你非常难过。
此问题不影响自动运行的代码,因此函数如 onOpen()
和 onEdit()
运行得很好并且可以完全访问绑定(bind)的文档。你听说过,谷歌会阻止用户明确要求运行以保护他们的数据的代码,但是在打开或修改工作表时静默自动运行的代码可以自由运行和访问(和更改!)它想要的任何数据。
因此,为了让用户运行您的代码,您可以在电子表格中选择一个单元格,该单元格的值在您希望代码运行时随时更改,或者您创建一个名为“编辑此单元格以运行程序”的特殊单元格。
然后你把你的代码放在 onEdit()
中并且(如果需要)检查以查看特殊单元格是否已更新。如果是这样,则运行您的任意代码。它可以完全访问电子表格,可以随意读取和更新单元格,还可以写入日志。
请注意,您必须关闭工作表并重新打开它才能使代码生效。
这是我的演示电子表格的样子...
...这是演示代码...
function onEdit(e) {
var range = e.range;
const triggerCell = "B2";
if( e.range.getA1Notation() === triggerCell){
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var rangeB1 =sheet.getRange("B1");
var rangeB2 =sheet.getRange("B2");
var date = Utilities.formatDate(new Date(), Intl.DateTimeFormat().resolvedOptions().timeZone, "HH:mm:ss");
rangeB2.setValue("Code ran at " + date );
Logger.log( date + ": B1=" + rangeB1.getValue() );
}
}
这是一个演示视频...
关于google-apps-script - 无法运行绑定(bind)到新空白文档的微不足道的应用程序脚本 - 获取 "This app is blocked",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66633659/
什么时候 lambda a 可以保证是微不足道的,如果有的话? 我假设如果它只捕获普通类型或什么都不捕获,那将是微不足道的。不过,我没有任何标准语言来支持这一点。 我的动机是将一些代码从 Visual
看似微不足道,但找不到解决方案 - 我需要编写查询,根据属性值获取人员(例如,让我找到具有属性“1”和“2”和“3”的人) *澄清:可以对三个以上的属性值进行查询- 它将由用户选择 - 从 0 到 n
我是一名优秀的程序员,十分优秀!