如何解决使用 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##"]
之类的数组提供给mergeDocsID
的GlobalWorkflow(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##"]
的数组被给出为mergeDocsID
的GlobalWorkflow(ProjectID,mergeDocsID)
。因此,在 Google Apps Script 端,当运行上述修改过的 curl 命令并选中mergeDocsID[0]
时,会返回"##Doc2ID##"
。
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。