簡體   English   中英

Google App 腳本錯誤:您無權調用 getActiveForm?

[英]Google App Script Error: You do not have permission to call getActiveForm?

我正在創建一個腳本,該腳本從表單中獲取信息並將其寫入日歷。 當我在腳本編輯器中運行腳本時,它運行良好,從電子表格中獲取信息並創建日歷事件。 但是,當我填寫表單並提交(提交是觸發器)時,我收到一條錯誤消息,指出我無權調用 getActiveForm()。 我擁有表格和日歷。 我很欣賞任何想法。

代碼

function createEvent() {
  var calendarToUse = "testing";
  var ssUrlToUse ='https://docs.google.com/a/bay.k12.fl.us/spreadsheets
/d/1ZTDQL9G5U7RqbbKQbAfb3ERqFwpSsC3EOQxdD1zdQwA/edit#gid=441997215';

  /* Get Canalnder*/
  var calen = CalendarApp.getCalendarsByName(calendarToUse);
  var cal = calen[0];
  Logger.log(cal.getName());

  /* get info from responses*/

var mySS
=SpreadsheetApp.openByUrl(ssUrlToUse).getActiveSheet()
  Logger.log(mySS.getName());
  var values = mySS.getDataRange().getValues();
  var response = values[values.length-1];
  var i=2;
  var desc = response[i]; 
  var loc = response[i+1];
  var start = makeGreatDate( response[i+2], response[i+4]);
  var end = makeGreatDate(response[i+3],response[i+6]);
  var title =  response[i+5];

  /* populate calendar event*/ 
  var event = cal.createEvent(title, start, end, {
      description : desc,
      location : loc
      });


};

function makeGreatDate(date, time) {
   var day = new Date(date);
  day.setHours(time.getHours());
  day.setMinutes(time.getMinutes());
  Logger.log( "The Date is"+ day);
  return day;
}

我遇到了同樣的問題。 我的腳本只是將表單響應和格式轉換為電子郵件。 與 OP 類似,我不會在腳本中的任何地方對FormApp.getActiveForm()進行一次調用。

在我添加PropertiesService.getScriptProperties()調用后,此權限問題立即開始。

雖然不是一個成熟的解決方案,但我能夠通過為FormApp.getActiveForm()添加一行,保存,然后保存我的觸發器(再次檢查權限)來解決這個問題。 我被要求確認腳本的Offline Access權限。

然后我刪除了不需要的行,表單工作正常。

從 UI 中刪除觸發器並重新添加它會提示它請求新的權限,“離線訪問”。 我同意了這一點,從那時起它就起作用了。

如果您在添加觸發器后更改了代碼,則需要刪除觸發器並重新添加它,這也將

這很奇怪,但您的腳本必須具有 Google Drive 的權限。 在腳本中插入一些代碼,以便應用程序為其請求許可(例如):

var d = DriveApp.getRootFolder();

然后運行腳本,授予權限。 之后,您可以刪除插入的行,除非您將代碼從一種形式復制到另一種形式。

我在附加到電子表格的腳本上遇到了同樣的問題,但是在提交為該電子表格提供數據的表單時做了一些事情。 我在 Resources->All Triggers 下發現我有一個剩余的通知,其中一個事件列為“來自表單”。 由於腳本在電子表格中起作用,具有“來自表單”事件通知導致錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM