我正在尝试创建将用户订阅到公司日历的简单脚本。它将嵌入谷歌网站。到目前为止,我有:
function doGet(e) {
var app = UiApp.createApplication();
var mainPanel = app.createVerticalPanel();
var mainButton = app.createButton("Push Me");
var clickHandler = app.createServerHandler("addCalendar");
mainButton.addClickHandler(clickHandler);
mainPanel.add(mainButton);
app.add(mainPanel);
return app;
}
function addCalendar(e) {
var app = UiApp.getActiveApplication();
var CAL_ID = (calendar's ID);
CalendarApp.subscribeToCalendar(CAL_ID);
var successLabel = app.createLabel("You have successfully added the Calendar.");
app.add(successLabel);
return app;
}
在显示successLabel时调用addCalendar(),但它似乎正在跳过订阅日历。在添加GUI之前,我能够订阅日历,因此问题必须与此相关。
感谢您的帮助!
编辑 - 在https://developers.google.com/apps-script/guide_user_interfaces的Google文档中,有一个表格显示作为独立servlet显示的UI作为作者运行,而电子表格中显示的UI则作为运行脚本的用户运行。这可能是问题的根源吗?
答案 0 :(得分:0)
我认为您的修改会回答您的问题...但如果您的客户有“商家”或“教育”帐户,您可以阅读this doc以帮助您找到解决方案。
答案 1 :(得分:0)
当脚本作为服务/ webapp发布时,它以开发人员的身份运行,这意味着错误的用户订阅了日历。相反,如果应用程序显示在电子表格中,则它将以活动用户的身份运行。