Серверный скрипт, вызывающий внешний источник, возвращает ошибку объекта - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь преобразовать приложение, созданное в Google Forms + App Script, в приложение App Maker.Это приложение взаимодействует с PagerDuty через API.В конечном итоге он будет редактировать контактную информацию для агентов в Pagerduty, но это доказательство концепции, которую я построил, должно просто получить контактную информацию агента.

Я получаю сообщение об ошибке, когда пытаюсь добавить заголовки и параметры к URL-адресу так же, как я делал в скрипте приложения.

Ошибка: исключение: недопустимый аргумент: https://api.pagerduty.com/users/PBQHZKE/contact_methods/P6Q90HR[object%20Object] в getPagerDutyContactInfo (ServerScript: 21)

Я думаю, что у меня неправильный тип объекта после URL, но я не смог найти документацию о том, что это должно быть.На данный момент я не ищу никакой помощи с API PagerDuty.Я просто не могу понять, как правильно добавить параметры в конец URL в App Maker.

Любая помощь будет принята с благодарностью.Спасибо!

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();
}

1 Ответ

0 голосов
/ 05 октября 2018

Я посоветовался с коллегой, и он указал на мою ошибку в Java Script.Я пытался добавить информацию моего заголовка в переменной options в конец переменной 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();
}
...