2014-03-26 122 views
2

我嘗試發送郵件使用下面的谷歌腳本谷歌腳本錯誤:您沒有權限調用openById

var file=DriveApp.getFileById('1qZVK0UZ1jLbDdj10FXZqeAVEodvxEy2Bs'); 
MailApp.sendEmail('[email protected]','subject','body',{attachments[file.getAs(MimeType.PDF)]}); 

當我運行上面的腳本手動運行安裝可用的文件在我的谷歌驅動器罰款,電子郵件發送。但是當我使用表單提交觸發器運行它時,它會給出錯誤「您沒有權限調用openById」

將會重現問題的步驟?

  1. 創建一個Google表單。
  2. 在腳本編輯器上編寫上述腳本,並添加一個提交表單的觸發器。
  3. 填寫並提交表單,那麼你將得到上述錯誤到郵件從「[email protected]

請幫助。

回答

2

我在窗體本身上創建腳本時發現了這個問題。

要解決這個問題,首先需要將表單回覆發送到電子表格。

從你的表格轉到工具>腳本編輯器...複製你的腳本並刪除你在那裏設置的任何觸發器,你將不再需要這個腳本。

現在單擊窗體中的查看響應按鈕打開電子表格。

  • 轉至工具>腳本編輯器...(用於電子表格)。
  • 你應該從一個空白的項目開始。
  • 刪除那裏的任何內容並粘貼到腳本中。
  • 保存並命名您的項目。

現在設置您的觸發器正常。您會發現新觸發器的第三個下拉列表中有選項表格提交

一旦您的腳本在任何時候被授權提交表單,該事件將觸發並且將有權訪問DriveApp。

一旦你測試了,並得到它的工作,我會回到窗體並刪除那裏的腳本項目。如果我稍後改變腳本並忘記哪一個實際上是活的,我會這樣做以保持整潔並避免混淆。

我不知道Google表單是否存在限制其訪問雲端硬盤或其他內容的限制。

1

我遇到了同樣的問題,但覺得這是一個有點傻必須使用FormResponses表,以獲得提交事件(我的意思是在窗體應用程序腳本的一個原因觸發,對吧?)。

我所要做的就是刪除並重新添加觸發器從形式 - >在表單提交。當我添加它時,向我挑戰了OAuth權限來查看和使用我的谷歌驅動器。

在此之後,我能夠再次運行Forms Apps腳本提交觸發器。