问题描述
我编写了一个添加全天活动的函数。
从脚本编辑器运行的函数运行正常时,全天事件将插入到日历中。
但是当我在活动电子表格=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不同,因此您可以使用它们来运行具有所需作用域的代码。要进行设置:
- 转到
Insert > Drawing
菜单项并创建形状;任何形状都可以,这将充当您的按钮。 - 按
Save and Close
将其添加到工作表中。 - 将新添加的图形移动到您想要的位置。在图形的右上角,您将看到垂直省略号菜单(
⋮
)。单击此,然后单击Assign script
。 - 在新窗口中,键入函数名称而不带括号(例如
myFunction
),然后按OK
。
我希望这对您有帮助!
参考文献:
,这是因为不允许您使用自定义功能来执行需要授权的操作,例如将事件添加到日历。
与大多数其他类型的应用程序脚本不同,自定义函数从不要求 用户授权访问个人数据。
但是,您可以尝试一些解决方法。例如,您可以在电子表格文件或时间驱动的触发器中创建自定义菜单选项。