403 доступ к сайту запрещен при правильном входе в систему / проходе через скрипт Google - PullRequest
0 голосов
/ 31 марта 2020
var url = "https://web-site_name/page/?format=json&var_data-organization_dates&xlsexport=true";

   var payload =
   {
     "login" : "login",
     "password" : "pass",
   };

  var options =
   {
     "method" : "post",
     "payload" : payload,
     "followRedirects" : false
   };

  var login = UrlFetchApp.fetch("https://web-site_name/page/" , options);
  var sessionDetails = login.getAllHeaders()['Set-Cookie'];
  Logger.log(login.getAllHeaders());

вот часть кода, которую я пытаюсь использовать для автоматизации экспорта данных с веб-сайта, у меня есть правильный логин и пароль, и я могу загрузить файл в json (открыт в xsl) вручную я получил адрес загруженного файла в сети в инструментах разработчика, но у меня возникла проблема на первом этапе - при попытке авторизации на веб-сайте - доступ запрещен. Я пробовал код, приведенный в ответах на stackoverflow, но он все еще не работает.

1 Ответ

1 голос
/ 31 марта 2020

Как правильно сделать запрос на получение URL-адреса, зависит от веб-сайта, к которому вы хотите получить доступ, и от используемой им аутентификации

В простейшем случае ваш веб-сайт требует аутентификации HTTP basi c, в данном случае правильный синтаксис:

var authHeader = 'Basic ' + Utilities.base64Encode(login + ':' + pass);
var options = {
  headers: {Authorization: authHeader}
} 
  • Если на вашем сайте используется другая форма аутентификации, вам может потребоваться предоставить маркер доступа.
  • В любом случае: учетные данные аутентификации go в headers, а не в payload!

  • payload - это данные, которые вы хочу опубликовать = загрузить на сайт.

  • Если вы хотите экспортировать данные с веб-сайта - то есть данные для загрузки - вам не нужно payload, и правильный метод будет get, а не post. Кстати, если метод get, вам не нужно его указывать.

Пожалуйста, смотрите здесь для получения дополнительной информации и образцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...