api - Rally API 创建 ConversationPost
问题描述
使用以下代码,我正在尝试为 Capability 创建新的对话帖子。但它说
由于 I/O 错误,无法将输入流解析为 JSON 文档:解析错误:预期为 '{' 但看到了 '' [ chars read = >>><<< ]
function createPost(objId, post) {
objId = "313878829904";
post = "<p>MindMap:Hello from GAS.</p>"
var url = "https://rally1.rallydev.com/slm/webservice/v2.0/conversationpost/create";
var payload = {
"ConversationPost": {
"Artifact": "/portfolioitem/capability/" + objId,
"Text": post
}
}
var method = "POST";
var options = optionsPost_(method, payload);
var response = UrlFetchApp.fetch(url, optionsPost_(method, options));
var content = JSON.parse(response.getContentText());
content.CreateResult.Errors.forEach(error => Logger.log(error));
}
function optionsPost_(method, payload) {
var rallyApiKey = "";
if (rallyApiKey != "") {
PropertiesService.getScriptProperties().setProperty("RallyApiKey", rallyApiKey);
} else {
rallyApiKey = PropertiesService.getScriptProperties().getProperty("RallyApiKey");
}
if (rallyApiKey == null) return null;
return {
headers: { "ZSESSIONID": rallyApiKey },
payload: payload,
method: method
};
}
我看不出有什么问题。能否请你帮忙?谢谢!彼得
解决方案
我认为从您的错误消息中,可能需要将有效负载作为 JSON 数据发送。如果我的猜测是正确的,那么下面的修改呢?
修改后的脚本:
从:return {
headers: { "ZSESSIONID": rallyApiKey },
payload: payload,
method: method
};
至:
return {
headers: { "ZSESSIONID": rallyApiKey },
payload: JSON.stringify(payload),
method: method,
contentType: "application/json"
};
笔记:
- 在这个修改中,它假设
payload
和rallyApiKey
的值是使用 API 的有效值。请注意这一点。 - 当上述修改不是您问题的直接解决方案时,您能否提供您要使用的API的官方文档?借此,我想确认一下。
参考:
推荐阅读
- r - 如何将提供给用户定义函数的参数用作输入和字符串?
- javascript - 在 Heroku 上部署 React 应用程序时出错,日志中没有错误
- php - 如何在自定义 woocommerce 循环中管理分页
- python - Seaborn regplot 拟合线与 stats.linregress 或 stats 模型的计算拟合不匹配
- python-3.x - python中的月到日期为通用方式
- yarnpkg - Yarn 工作空间检测到包,但纱线工作空间没有
- javascript - jQuery切换 - 如何启用淡入淡出效果
- javascript - 样式化 LightningChart JS 图表
- powershell - 即使设置了 -whatif 属性,是否有办法将 powershell 日志记录到文本文件中?
- rest - JWT 好像不安全?不是吗?