我对此很陌生,请耐心等待-我目前在从Google Form答案生成的google工作表的后端上有一个可操作的google apps脚本。我实质上是在Google表单中设置一个票证表单,该表单会触发相应工作表中的数据通过api调用发送到我们的票务系统。它的效果很好,但我目前正在尝试对其进行优化。目标是获取我使用的json响应:
Logger.log(response.getContentText());
为我提供以下信息:
Aug 9, 2020, 11:44:40 AM Info {"_url":"https://testticketingsystem.com/REST/2.0/ticket/123456","type":"ticket","id":"123456"}
并发送另一个API调用以将数据发送到该新票证。
这是一个代码片段:
var payload = {
"Subject": String(su),
"Content": String(as),
"Requestor": String(em),
"Queue": String(qu),
"CustomFields": {"CustomField1": String(vn), "CustomField2": String(vb), "CustomField3":
String(vg), "CustomField4": String(av), "CustomField5": String(ov), "CustomField6":
String(sd)}
}
var options = {
'method': 'post',
"contentType" : "application/json",
'payload': JSON.stringify(payload),
'muteHttpExceptions': true
}
var url = "https://testticketingsystem.com/REST/2.0/ticket?token=****************";
var response = UrlFetchApp.fetch(url,options);
Logger.log(response.getContentText());
} catch (error) {
Logger.log(error.toString());
}
}
创建票证后,如何在下一个api调用中编写将ID号用作变量的脚本?
谢谢!
UrlFetchApp.fetch
返回HTTPResponse
,如果您希望使用JSON,则应该可以使用JSON.parse()
文本创建对象。(该JSON
对象是标准的JavaScript全局对象,例如Math
;它不是Google Apps脚本专用的。)
如果一切顺利,您应该可以使用
var response = UrlFetchApp.fetch(url,options);
var data = JSON.parse(response.getContentText());
var id = data.id;
然后id
用于下一个fetch()
。
如果您的字面回答确实是
Aug 9, 2020, 11:44:40 AM Info {"_url":"https://testticketingsystem.com/REST/2.0/ticket/123456","type":"ticket","id":"123456"}
直到{
JSON无效为止,您都会遇到麻烦(如果需要检查自己,请使用linter)。但是我假设这是控制台在您记录JSON时添加的,而不是在实际响应本身中添加的。
JSON.parse()
使用无效的JSON引发错误,因此可以try/catch
根据需要使用。
您也可以在尝试之前检查标题JSON.parse()
。
这是检查和处理出现问题的示例。
var type = response.getHeaders()["Content-Type"];
var text = response.getContentText();
if (type === "application/json") {
try {
var data = JSON.parse(text);
} catch (error) {
return Logger.log("Invalid JSON: " + response.getContentText(text));
}
} else {
return Logger.log("expected JSON, but got response of type: " + type);
}
// if we get to this line, data is an object we can use
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句