Google Apps脚本subscribeToCalendar()未触发

时间:2012-06-19 21:31:02

标签: google-apps-script

我正在尝试创建将用户订阅到公司日历的简单脚本。它将嵌入谷歌网站。到目前为止,我有:

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则作为运行脚本的用户运行。这可能是问题的根源吗?

2 个答案:

答案 0 :(得分:0)

我认为您的修改会回答您的问题...但如果您的客户有“商家”或“教育”帐户,您可以阅读this doc以帮助您找到解决方案。

答案 1 :(得分:0)

当脚本作为服务/ webapp发布时,它以开发人员的身份运行,这意味着错误的用户订阅了日历。相反,如果应用程序显示在电子表格中,则它将以活动用户的身份运行。