0

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

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;
}

addCalendar() 在显示 successLabel 时被调用,但它似乎跳过了订阅日历。在添加 GUI 之前,我能够订阅日历,所以问题一定与此有关。

谢谢你的帮助!

编辑 - 在https://developers.google.com/apps-script/guide_user_interfaces的谷歌文档中,有一个表格显示显示为独立 servlet 的 UI 以作者身份运行,而电子表格中显示的 UI 以用户身份运行剧本。这可能是问题的根源吗?

4

2 回答 2

0

我认为您的编辑回答了您的问题......但如果您的客户拥有“商业”或“教育”帐户,您可以阅读此文档来帮助您找到解决方案。

于 2012-06-20T09:09:13.340 回答
0

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

于 2012-06-22T02:23:25.370 回答