使用cURL在Google Apps脚本函数中添加数组作为参数

使用cURL在Google Apps脚本函数中添加数组作为参数,curl,google-apps-script,google-apps-script-api,Curl,Google Apps Script,Google Apps Script Api,我在Google Apps脚本中创建了一个函数,用于在Google Drive中创建和管理多个项目(例如,创建文件夹、新文档或Xls文件等)。重要的是我有4个文档(或模板):MainDoc+3个附加文档文件。在我的脚本中,复制并重命名MainDoc文件(step1),然后在第二步中,使用将要添加/组合其在MainDoc上的文本的3个附加文件的ID定义数组(step2)。 为了便于理解,我展示了我的功能的基本结构: 1 function GlobalWorkflow(ProjectID, m

我在Google Apps脚本中创建了一个函数,用于在Google Drive中创建和管理多个项目(例如,创建文件夹、新文档或Xls文件等)。重要的是我有4个文档(或模板):MainDoc+3个附加文档文件。在我的脚本中,复制并重命名MainDoc文件(
step1
),然后在第二步中,使用将要添加/组合其在MainDoc上的文本的3个附加文件的ID定义数组(
step2
)。 为了便于理解,我展示了我的功能的基本结构:

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    }
我现在的问题是,我想运行“
GlobalWorkflow
”函数,但其中一个参数(mergeDocsID)是带有要组合的文档文件ID的数组,我从cURL获得了整个脚本,除了该部分(
Step2
),尽管响应没有给我错误

这是我使用的命令:

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命令中包含数组以使“
mergeGoogleDocs
”函数工作

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

有人能帮我吗

多谢各位


沃迪亚姆

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

  • 您需要使用curl命令将一个数组(如
    [“###Doc2ID###################,“##Doc4ID###”
    赋给
    GlobalWorkflow(projectd,mergeDocsID)
    mergeDocsID
  • 您已经确认,当为函数
    GlobalWorkflow
    指定了正确的值时,脚本工作正常
  • 您已经能够使用Google Apps脚本API运行函数
为了给出类似
[“##Doc2ID####”、“#Doc3ID###”、“#Doc4ID###”]
的数组,请修改curl命令如下

发件人: 致:
  • 通过以上修改,
    [“##Doc2ID####”、“##Doc3ID##”、“##Doc4ID##”
    数组作为
    GlobalWorkflow(projectd,mergeDocsID)
    mergeDocsID
    给出。所以在Google Apps脚本端,当运行上面修改的curl命令并选中
    mergeDocsID[0]
    时,将返回
    “###Doc2ID#”
参考:

非常感谢Tanaike,它工作得非常好。一如既往,您的解释是完美的,这正是我需要的代码。谢谢我的朋友。ありがとうございました。@沃迪亚姆感谢您的回复和测试。我很高兴你的问题解决了。也谢谢你。こちらこそありがとうございます。
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##", "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##", "parameters": ["##MainDocID##", ["##Doc2ID##","##Doc3ID##","##Doc4ID##"]], devMode: true}' \
"https://script.googleapis.com/v1/scripts/### script ID ###:run"