微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 cURL 在 Google Apps Script 函数中添加数组作为参数 来自:致:参考:

如何解决使用 cURL 在 Google Apps Script 函数中添加数组作为参数 来自:致:参考:

我在 Google Apps Script 中创建了一个函数来创建和管理 Google Drive 中的几个项目(例如,创建一个文件夹、一个新的 Doc 或 Xls 文件等)。重要的是我有 4 个 DOC 文档(或模板):MainDoc + 3 个附加 Doc 文件。使用我的脚本,MainDoc 文件被复制并重命名 (step1),然后在第二步中,使用将要添加/组合它们在 MainDoc 上的文本的 3 个附加文件的 ID 定义数组 ({ {1}})。 为了让我的解释易于理解,我展示了我的函数的基本结构:

step2

第 15 行调用一个函数1 function GlobalWorkflow(ProjectID,mergeDocsID) { 2 ... 3 //### STEP1 ###// 4 var newFolderID = parentFolder.createFolder(date + '_Report').getId(); 5 var newFolder = DriveApp.getFolderById(newFolderID); 6 var docTemplateID = "##MainDocID##"; 7 var getDOCTemplate = DriveApp.getFileById(docTemplateID); 8 var MainDocID = getDOCTemplate.makecopy(date + '_Report',newFolder).getId(); 9 ... 10 //### STEP2 ###// 11 //Input: documentIDs to merge 12 //var mergeDocsID = "##Doc2ID##|##Doc3ID##|##Doc4ID##" 13 var mergeArray = mergeDocsID.split('|'); 14 for (var i = 0; i < mergeArray.length; i++) { 15 mergeGoogleDocs(MainDocID,mergeArray[i]); 16 } 17 ... 18 } ”,该函数带有 2 个参数。这个另一个函数在另一个 post 中进行了描述,感谢@Tanaike 我设法使用这个命令从 cURL 运行这个函数

mergeGoogleDocs

我现在遇到的问题是我想运行 'curl -X POST \ -H 'Authorization: Bearer ### access token ###' \ -H "Content-Type: application/json" \ -d '{"function": "##function name##","parameters": ["##docID1##","##docID2##"],devMode: true}' \ "https://script.googleapis.com/v1/scripts/### script ID ###:run" ' 函数,但其​​中一个参数 (mergeDocsID) 是包含要组合的 doc 文件 ID 的数组我让整个脚本从 cURL 开始工作,除了那部分 (GlobalWorkflow),尽管响应没有给我错误

这是我使用的命令:

Step2

如何在 cURL 命令中包含数组以使“curl -X POST \ -H 'Authorization: Bearer ### access token ###' \ -H "Content-Type: application/json" \ -d '{"function": "##function name##","parameters": ["##MainDocID##","##Doc2ID##|##Doc3ID##|##Doc4ID##"],devMode: true}' \ "https://script.googleapis.com/v1/scripts/### script ID ###:run" 函数起作用?。

附注。如果我取消注释第 12 行并从 GAS 运行该函数,则一切正常,并且会创建包含 4 个文件的组合文档。不起作用的是 cURL 命令。

有人可以帮我吗?

非常感谢。

瓦迪姆

解决方法

我相信你的目标和你目前的情况如下。

  • 您想使用 curl 命令将 ["##Doc2ID##","##Doc3ID##","##Doc4ID##"] 之类的数组提供给 mergeDocsIDGlobalWorkflow(ProjectID,mergeDocsID)
  • 您已经确认,当为函数 GlobalWorkflow 提供正确的值时,脚本运行良好。
  • 您已经能够使用 Google Apps Script API 运行函数。

为了得到像 ["##Doc2ID##","##Doc4ID##"] 这样的数组,请修改你的 curl 命令如下。

来自:

curl -X POST \
-H 'Authorization: Bearer ### access token ###' \
-H "Content-Type: application/json" \
-d '{"function": "##function name##","parameters": ["##MainDocID##","##Doc2ID##|##Doc3ID##|##Doc4ID##"],devMode: true}' \
"https://script.googleapis.com/v1/scripts/### script ID ###:run"

致:

curl -X POST \
-H 'Authorization: Bearer ### access token ###' \
-H "Content-Type: application/json" \
-d '{"function": "##function name##",["##Doc2ID##","##Doc4ID##"]],devMode: true}' \
"https://script.googleapis.com/v1/scripts/### script ID ###:run"
  • 通过上述修改,["##Doc2ID##","##Doc4ID##"] 的数组被给出为 mergeDocsIDGlobalWorkflow(ProjectID,mergeDocsID)。因此,在 Google Apps Script 端,当运行上述修改过的 curl 命令并选中 mergeDocsID[0] 时,会返回 "##Doc2ID##"

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。