簡體   English   中英

使用 Google Apps Script Execution API 的 ScriptError

[英]ScriptError using Google Apps Script Execution API

遵循這些指南https://developers.google.com/apps-script/guides/rest/quickstart/target-scripthttps://developers.google.com/apps-script/guides/rest/quickstart/nodejs ,我我正在嘗試使用節點中的執行 API 來返回 Google 電子表格中的一些數據。

我已將腳本 ID 設置為 Apps 腳本文件的項目密鑰。 我還驗證了在腳本編輯器中運行該函數是否成功。

但是,當使用 node 在本地運行腳本時,我收到此錯誤:

The API returned an error: Error: ScriptError

我還確保腳本與我用來通過 Google API 進行身份驗證的項目相關聯。

有沒有人對我可以做些什么來調試/解決這個問題有什么建議? 該錯誤是如此普遍,以至於我不知道該往哪里看。

更新:我在此 JSBin 中包含了一份代碼副本( year函數是入口點) https://jsbin.com/zanefitasi/edit?js

更新 2:錯誤似乎是由包含這一行var spreadsheet = SpreadsheetApp.open(DriveApp.getFileById(docID));

似乎我沒有請求正確的范圍。 nodejs 示例包括'https://www.googleapis.com/auth/drive' ,但我還需要在SCOPES數組中包括'https://www.googleapis.com/auth/spreadsheets' 似乎錯誤消息ScriptError在這里提供的信息不是很豐富。

為了找到您需要的范圍,請轉到腳本編輯器 > 文件 > 項目屬性 > 范圍。 請記住刪除舊憑據~/.credentials/old-credential.json以便腳本請求新~/.credentials/old-credential.json

編輯:隨着信息的更新,我仔細觀察了一下,發現您返回的是非基本類型。 具體來說,您正在返回一個工作表對象。

Apps Script 中的基本類型類似於 JavaScript 中的基本類型:字符串、數組、對象、數字和布爾值。 執行 API 只能獲取和返回與這些基本類型相對應的值——API 無法傳遞更復雜的 Apps 腳本對象(如文檔或工作表)。

https://developers.google.com/apps-script/guides/rest/api

在您的帳戶“類”中

this.report = spreadsheet.getSheetByName(data.reportSheet);

舊答案:

在這種情況下,“data.business_exp”將為空。 您需要從某處加載數據。 每次調用腳本時都會創建一個新的腳本實例。 在執行鏈的末尾,它將被銷毀。 任何存儲為全局對象的數據都將丟失。 您需要將該數據保存到永久位置,例如腳本/用戶屬性,並在每次腳本執行時重新加載。

https://developers.google.com/apps-script/reference/properties/

暫無
暫無

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

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