Как устранить ошибку 401 при отправке HTTP-запроса из скрипта Google - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь отправить HTTP-запрос из приложения Google, связанного с листом Google. Это POST-запрос, адресованный внешнему серверу. К сожалению, это не работает из google appscript, и журнал сообщает о несанкционированной ошибке 401.

Я попытался успешно отправить запрос из службы REST (ARC как расширение Chrome), и я не понимаю, почему тот же запрос не отклоняется сервером, пока запрос appsScript генерирует ошибку.

Функция, которую я написал в приложении, выглядит следующим образом:

 function myFunction() {
  var url = 'https://servername/servicename/cloud/message';
  var options = {
    'method': 'post',
    'Headers': {
      'Content-Type' : 'application/json', 'Host' : 'servername', 
'credentials': 'include' },

    'Body':  JSON.stringify({
               'secret': "2.3xo5y9boWhgk4rEB1Xm8TZmb4zPNyPeCPDBiw2rNhvc=",
               'to': 'mymail@gmail.com',
               'device': null,
               'payload': 'apri'
               }),

    muteHttpExceptions: true,
  };
  var response = UrlFetchApp.fetch(url, options);

   Logger.log(response.getContentText()); 
};  

Посоветуйте, пожалуйста, как заставить работать скрипт. Я обнаружил, что в других сообщениях stackoverflow указывается решение, основанное на авторизации, но сервер не требует авторизации или пароля, когда HTTP-запрос отправляется через службу REST или веб-страницу, и не может понять, почему он должен требовать их для запроса, поступающего от Google Appscript. Еще один вопрос: может быть, приложение должно быть развернуто особым образом: я развернул его с помощью раздела «Публикация приложения», но есть разные варианты и, возможно, я выбрал неправильный (я развернул как веб-приложение и как исполняемый файл API). Спасибо

...