簡體   English   中英

Google Script 錯誤:您無權調用 openById

[英]Google Script Error: You do not have permission to call openById

我正在嘗試使用以下谷歌腳本發送一封郵件,並附上我的谷歌驅動器中可用的文件

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

當我手動運行上面的腳本時,它運行良好,會發送電子郵件。 但是當我使用表單提交觸發器運行它時,它會出現錯誤“您無權調用 openById”

將重現問題的步驟?

  1. 創建一個谷歌表單。
  2. 在腳本編輯器上編寫上述腳本並添加提交表單的觸發器。
  3. 填寫並提交表格,然后您將收到來自“apps-scripts-notifications@google.com”的郵件

請幫忙。

我在表單本身上創建腳本時發現了這一點。

要解決該問題,您首先需要將回復發送到電子表格。

從您的表單轉到工具 > 腳本編輯器...復制您的腳本並刪除您在那里設置的所有觸發器,您將不再需要此腳本。

現在單擊表單中的查看回復按鈕以打開電子表格。

  • (for the spreadsheet).轉到 (對於電子表格)。
  • 您應該從一個空白項目開始。
  • 刪除其中的任何內容並粘貼到您的腳本中。
  • 保存並命名您的項目。

現在像往常一樣設置觸發器。 .您會發現新觸發器的第三個下拉列表具有選項。

一旦您的腳本在任何時候提交表單時獲得授權,該事件就會觸發並且可以訪問 DriveApp。

一旦你測試並讓它工作,我會回到表單並刪除那里的腳本項目。 我這樣做是為了讓事情保持整潔並避免混亂,如果我以后來更改腳本並且忘記了哪個實際是實時的。

我不知道谷歌表單是否有限制他們訪問雲端硬盤或其他東西的限制。

我遇到了同樣的問題,但覺得必須使用 FormResponses Sheet 來獲取提交事件有點愚蠢(我的意思是 Form Apps Scripts 上有一個觸發器是有原因的,對吧?)。

我所要做的就是刪除並重新添加From form --> On form submit的觸發器。 當我添加它時,向我挑戰了查看和使用我的谷歌驅動器的 OAuth 權限。

緊接着,我能夠再次在 Forms Apps Script Submission 觸發器上運行。

暫無
暫無

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

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