gpt4 book ai didi

google-apps-script - 无法运行绑定(bind)到新空白文档的微不足道的应用程序脚本 - 获取 "This app is blocked"

转载 作者:行者123 更新时间:2023-12-04 12:23:00 32 4
gpt4 key购买 nike

我无法在我的 google 帐户中运行任何应用程序脚本 - 即使是我创建的应用程序脚本绑定(bind)到我创建的新文档。当我这样做时,我收到“此应用程序已被阻止”错误。请注意,这与提到的“为此应用程序暂时禁用登录”失败模式不同 elsewhere ,并且该问题的解决方案对这个问题没有影响。
为了测试,我在登录到我的个人谷歌帐户时创建了一个新的电子表格,并输入值 ONE在单元格中 A1 ...
enter image description here
然后我打开了Tools->Script编辑器从此电子表格的菜单栏中输入以下简单脚本...
enter image description here
然后单击脚本编辑器菜单栏中的运行图标,并从下拉列表中选择函数“myFunction”。
我收到一个“需要授权”的弹出窗口,所以我点击“查看权限”...
enter image description here
然后我得到一个“选择一个帐户”弹出窗口并单击我的帐户(唯一登录的帐户,以及我在创建工作表和脚本时登录的帐户)...
enter image description here
然后我得到一个“应用程序阻止”弹出窗口。检查执行日志显示脚本没有运行。
enter image description here
是什么导致了这个弹出窗口,我该如何防止它以便我可以运行应用程序脚本?
注意:我看到许多其他问题描述了这个问题的更复杂版本,但没有一个有有用的答案。我希望这个问题的超简单版本将有助于缩小范围并获得解决方案。
更多意外行为:
如果我将代码放入 onLoad()功能它工作正常,甚至从不要求我授权。
如果我输入此代码:
enter image description here
...然后退出并重新加载工作表,然后我在执行日志中得到它......
enter image description here
同样,这根本没有授权弹出窗口。工作表加载时不会中断,然后条目会出现在执行日志中。因此,这似乎不是某处没有正确权限的情况,因为代码显然可以访问工作表。
旧版编辑器
旧版编辑器下的相同行为...
enter image description here
其他账户
我可以在不同的 google 帐户上重复这些完全相同的步骤并且它工作正常,所以这个问题似乎与我的帐户有关。互联网上的许多其他人也注意到了同样的发现。似乎有一些隐藏的(可能是无意的)设置附加到以某种方式切换的帐户上,然后该帐户无法手动授权脚本运行。
改变项目
我检查了一下,这个脚本按预期在“默认”项目中......
enter image description here
根据这个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.


由于我没有什么可失去的,因此尝试在 Google Cloud Platform 控制台中创建一个新项目,然后尝试将此脚本分配给该新项目。不幸的是,当我尝试时,我得到了正常的“需要授权”弹出窗口,这导致了这个 opdd 页面......
enter image description here
单击“解决此问题”链接会将我带到此页面...
enter image description here
...这似乎是说我没有权限对自己的帐户进行故障排除。
这似乎再次表明我在谷歌服务器上的帐户配置错误。 :/

最佳答案

不幸的是,那里没有好的答案。很多像我这样的人在一个随机的早晨醒来,发现他们无法再在他们的帐户中运行任何新的应用程序脚本。
我找到了一个很好的解决方法......但会让你非常难过。
此问题不影响自动运行的代码,因此函数如 onOpen()onEdit()运行得很好并且可以完全访问绑定(bind)的文档。你听说过,谷歌会阻止用户明确要求运行以保护他们的数据的代码,但是在打开或修改工作表时静默自动运行的代码可以自由运行和访问(和更改!)它想要的任何数据。
因此,为了让用户运行您的代码,您可以在电子表格中选择一个单元格,该单元格的值在您希望代码运行时随时更改,或者您创建一个名为“编辑此单元格以运行程序”的特殊单元格。
然后你把你的代码放在 onEdit() 中并且(如果需要)检查以查看特殊单元格是否已更新。如果是这样,则运行您的任意代码。它可以完全访问电子表格,可以随意读取和更新单元格,还可以写入日志。
请注意,您必须关闭工作表并重新打开它才能使代码生效。
这是我的演示电子表格的样子...
enter image description here
...这是演示代码...

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() );
}
}
这是一个演示视频...
https://youtu.be/ypuLaUWn1R8
我之前说过,我再说一遍 - 如果您正在考虑将 Google 云服务用于任何事情,请再想一想。这是建立在谷歌没有人理解的垃圾之上的垃圾,它偶尔会突然和灾难性地崩溃,而且没有人甚至可以告诉你发生了什么,更不用说它是如何、何时或是否会得到修复。

关于google-apps-script - 无法运行绑定(bind)到新空白文档的微不足道的应用程序脚本 - 获取 "This app is blocked",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66633659/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com