调用外部源的服务器脚本返回对象错误



我正在尝试将我在 Google 表单 + App Script 中构建的应用转换为应用制作工具应用。此应用程序通过API与Pagerduty进行交互。它最终会在Pagerduty中编辑代理的联系信息,但我构建的这个概念证明应该只是获取代理的联系信息。

当我尝试以与在应用程序脚本中相同的方式将标头和选项添加到 URL 时,我不断收到错误。

错误: 异常: 无效参数: https://api.pagerduty.com/users/PBQHZKE/contact_methods/P6Q90HR[对象%20对象] 在 getPagerDutyContactInfo (ServerScript:21(

我想我在 URL 后面有错误类型的对象,但我无法找到有关这应该是什么的文档。在这一点上,我不是在寻求有关Pagerduty API的任何帮助。我只是不知道如何在应用制作工具中将参数正确添加到网址的末尾。

任何帮助将不胜感激。谢谢!

function getPagerDutyContactInfo() {
var headers = {
"Accept": "application/vnd.pagerduty+json;version=2",
"Authorization": "Token token=<API KEY>",
};
var options =
{
"muteHttpExceptions" : true,
"contentType" : "application/json",
"method" : "get",
"headers" : headers
//    "payload" : infoPD
};
console.log("test-gr");

// Line below returns this error: Exception: Invalid argument: https://api.pagerduty.com/users/PBQHZKE/contact_methods/P6Q90HR[object%20Object] at getPagerDutyContactInfo (ServerScript:21)
var url = "https://api.pagerduty.com/users/PBQHZKE/contact_methods/P6Q90HR" + options;
console.log("after var URL, before fetch");
// The line below returns a 404 error from Pagerduty
// var url = "https://api.pagerduty.com/users/PBQHZKE/contact_methods/P6Q90HR";
var response = UrlFetchApp.fetch(url);
console.log("after fetch");
return response.getContentText();
}

我咨询了一位同事,他指出了我在 Java 脚本中的错误。我试图将选项变量中的标题信息添加到 URL 变量的末尾。Google的UrlFetchApp希望在UrlFetchApp调用本身的逗号之后使用这些。

下面的代码现在可以工作了。 :)

function getPagerDutyContactInfo() {
var headers = {
"Accept": "application/vnd.pagerduty+json;version=2",
"Authorization": "Token token=<API KEY>",
};
var options =
{
"muteHttpExceptions" : true,
"contentType" : "application/json",
"method" : "get",
"headers" : headers
//    "payload" : infoPD
};
console.log("test-gr");

// Line below returns this error: Exception: Invalid argument: https://api.pagerduty.com/users/PBQHZKE/contact_methods/P6Q90HR[object%20Object] at getPagerDutyContactInfo (ServerScript:21)
var url = "https://api.pagerduty.com/users/PBQHZKE/contact_methods/P6Q90HR";
console.log("after var URL, before fetch");
// The line below returns a 404 error from Pagerduty
// var url = "https://api.pagerduty.com/users/PBQHZKE/contact_methods/P6Q90HR";
var response = UrlFetchApp.fetch(url, options);
console.log("after fetch");
return response.getContentText();
}

最新更新