从另一Apps Script调用带参API可执行函数报错问题咨询
问题原因
你遇到的报错是因为UrlFetchApp默认将payload对象以application/x-www-form-urlencoded格式发送,这种格式仅支持传递基础类型(字符串、数字等)的参数,你提交的parameters是数组类型,无法被正确编码传递给 Apps Script API,所以触发参数解析错误。
你之前调用无参的test()函数能成功,是因为test不需要传递数组类型的parameters,表单格式可以正常解析对应的字符串参数,所以没有触发报错。
修复方案
修改clientFunctions中调用createUser的请求配置,做两处调整:
- 新增
contentType: "application/json"配置,指定请求体格式为JSON - 用
JSON.stringify()包裹payload对象,手动序列化为JSON字符串
修改后的完整代码如下:
var token = ScriptApp.getOAuthToken(); var payload = { "function": "createUser", "parameters": ["john@domain.com", "John Doe"], "devMode": "true" }; var options = { "method": "POST", "contentType": "application/json", "headers": {"Authorization": "Bearer "+ token }, "payload": JSON.stringify(payload), "muteHttpExceptions": true }; var rest = UrlFetchApp.fetch("https://script.googleapis.com/v1/scripts/ABCXYZ:run", options);
内容的提问来源于stack exchange,提问作者miturbe
相关产品推荐
相关产品推荐

