Google Apps Script / URLFetchApp并使用返回的数据

蒂芙尼·伍兹(Tiffany Woods)

我对此很陌生,请耐心等待-我目前在从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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Google Apps Script 解析 XML

使用 For 循环运行 Apps 脚本 - Google Sheets / Apps Script

使用 Google Apps Script for Google Sheets 检索测验结果

如何使用 Google Apps Script SUMIF(来自 Google Sheets)?

Google Sheets Apps Script,从命名范围返回随机项目

如何使用 UrlFetchApp 编写 Google Apps 脚本以在 FinViz.com 中提取部分表格数据?

在 Google Apps Script 中使用 Google People API 删除联系人返回 404 错误

Google Apps独立脚本,可使用Google Apps Script API更新许多绑定的脚本

Google-Apps-Script For 循环

如何使用Apps Script在Google表格中设置日期格式?

将托管在 GitHub 上的项目与 Google Apps Script 结合使用

每次在 Google Apps Script 中如何正确使用 LockService?

如何使用google-apps-script制作媒体推文?

使用Apps Script格式化Google Doc中的表格

如何使用 Google Apps Script 获取标题图片

Apps Script (Google Sheets) 如何使用数组执行 .setHiddenValues

使用 Google Apps Script for Spreadsheet 自动邮寄脚本的问题

如何使用 Google Apps Script 对长度不同的列求和?

在Google Apps脚本上使用Google Script API获取开发人员元数据

使用 Google Apps Script 将 .CSV 文件数据复制到 Google 表格

无法在Google Apps脚本中解析来自UrlFetchApp的数据

Google Apps Script UrlFetchApp GET 到 node.js 端点导致空正文

如何将 cURL 请求转换为 Google Apps Script UrlFetchApp

Google Apps Script 上的 google.script.run 问题

如何使用 Google Apps Script 從 Google Search Console API 請求特定數據?

如何使用 Google Apps Script 正确写入 Google 电子表格?

使用Google Script Apps将受众群体插入Google Analytics(分析)时出现问题

使用 Google Apps Script 从 Google 文档中删除空白的最后一页空间、标签

使用 Google Apps Script 在 Google Doc 中查找包含带括号的文本的元素