来自脚本编辑器的功能可以正常工作,但不能用于工作表自定义功能 答案:更多信息和解决方法:参考文献:

问题描述

我编写了一个添加全天活动的函数。

从脚本编辑器运行的函数运行正常时,全天事件将插入到日历中。

但是当我在活动电子表格=addevent(a1,b1,c1,d1)中运行该功能

我收到一条错误消息:

异常:该脚本无权执行该操作。所需的权限:(https://www.googleapis.com/auth/calendar || https://www.googleapis.com/auth/calendar.readonly || https://www.google.com/calendar/feeds)(第11行)

搜索网络后,我发现如何通过编辑JSON文件中的oauthScopes来手动添加这些权限:

{
  "oauthScopes": [
    "https://www.googleapis.com/auth/calendar","https://www.googleapis.com/auth/calendar.readonly","https://www.google.com/calendar/feeds","https://www.googleapis.com/auth/spreadsheets.currentonly","https://www.googleapis.com/auth/spreadsheets"
    
  ],"timeZone": "censored","dependencies": {
    "enabledAdvancedServices": [{
      "userSymbol": "Calendar","serviceId": "calendar","version": "v3"
    }]
  },"exceptionLogging": "STACKDRIVER","runtimeVersion": "V8"
  


}

但是我在电子表格中仍然遇到相同的错误...有什么想法吗?

解决方法

答案:

虽然无法直接从工作表的单元格运行需要授权的脚本,但可以将脚本设置为单击按钮即可运行。

更多信息和解决方法:

由于按钮与自定义函数的authorisation restrictions不同,因此您可以使用它们来运行具有所需作用域的代码。要进行设置:

  1. 转到Insert > Drawing菜单项并创建形状;任何形状都可以,这将充当您的按钮。
  2. Save and Close将其添加到工作表中。
  3. 将新添加的图形移动到您想要的位置。在图形的右上角,您将看到垂直省略号菜单()。单击此,然后单击Assign script
  4. 在新窗口中,键入函数名称而不带括号(例如myFunction),然后按OK

我希望这对您有帮助!

参考文献:

,

这是因为不允许您使用自定义功能来执行需要授权的操作,例如将事件添加到日历。

来自official documentation

与大多数其他类型的应用程序脚本不同,自定义函数从不要求 用户授权访问个人数据。

但是,您可以尝试一些解决方法。例如,您可以在电子表格文件或时间驱动的触发器中创建自定义菜单选项。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...