注:我还在亚特兰蒂斯论坛上发布了这个问题:https://community.atlassian.com/t5/Confluence-questions/Google-Apps-Script-to-Create-Confluence-Page-HTTP-500-Error/qaq-p/1039040#M66094
所以我要接触更多的观众。
我正在使用google工作表中的以下Google应用程序脚本代码来创建一个聚合页面:
headers = {"Authorization" : "Basic " + Utilities.base64Encode(user + ':' +
pswd), "Content-Type": "application/json"};
url = "https://confluence.asdf.com/rest/api/content/";
var params = {
"method":"POST",
"headers":headers,
"muteHttpExceptions": false,
"type":"page",
"title":newTitle,
"space":{"key":"DOC"},
"body":{"storage":{"value": "<p>This is <br/> a new page</p>" },
"representation":"storage"}
};
var createResponse = UrlFetchApp.fetch(url, params); 然而,当我提交请求时,我会收到以下答复:
Request failed for https://confluence.atlas.asdf.com/rest/api/content/
returned code 500.
Truncated server response: {"statusCode":500,"
message":"<?> No content to map to Object due to end of
input","reason":"Internal Server Error"} (use muteHttpExceptions option to
examine full response)我知道外面有卷发样本,我看到了,但帮不了我。我做错了什么?
编辑:25-3月25日 @Tanaike按您的建议修改了代码:
headers = {"Authorization" : "Basic " + Utilities.base64Encode(user + ':' + pswd) };
var payload = {
"type": "page",
"title": newTitle,
"space": {"key": "DOC"},
"body": {
"storage": {
"value": "<p>This is <br/> a new page</p>"
},
"representation": "storage"
}
};
var params = {
"method": "POST",
"headers": headers,
"muteHttpExceptions": false,
"payload": JSON.stringify(payload),
"contentType": "application/json"
};
var createResponse = UrlFetchApp.fetch(url, params); 我收到了和以前一样的错误。
发布于 2019-03-22 23:35:38
这个修改怎么样?
修改脚本:
请按以下方式修改params并再次测试。从您问题中的错误消息中,请求主体被放置在payload属性中。
var payload = {
"type": "page",
"title": newTitle,
"space": {"key": "DOC"},
"body": {
"storage": {
"value": "<p>This is <br/> a new page</p>"
},
"representation": "storage"
}
};
var params = {
"method": "POST",
"headers": headers,
"muteHttpExceptions": false,
"payload": JSON.stringify(payload)
};注意:
payload和headers中的每个值都是正确的。"Content-Type": "application/json"也可以作为"contentType": "application/json"放在params中。参考文献:
我不能测试这个修改。因此,如果这不起作用,你能提供错误信息吗?我想考虑一下这个问题。
编辑:
从正式文件的角度来看,body的属性似乎是"body":{"storage":{"value":"<p>This is a new page</p>","representation":"storage"}}}。因此,请修改如下。
修改脚本:
headers = {"Authorization" : "Basic " + Utilities.base64Encode(user + ':' + pswd) };
var payload = {
"type": "page",
"title": newTitle,
"space": {"key": "DOC"},
"body": {
"storage": {
"value": "<p>This is <br/> a new page</p>",
"representation": "storage" // Modified
}
}
};
var params = {
"method": "POST",
"headers": headers,
"muteHttpExceptions": false,
"payload": JSON.stringify(payload),
"contentType": "application/json"
};
var createResponse = UrlFetchApp.fetch(url, params);注意:
payload和headers的每个值。https://stackoverflow.com/questions/55308969
复制相似问题