Jak używać UrlFetchApp z poświadczeniami? Skrypty Google

Próbuję użyć Google Scripts UrlFetchApp, aby uzyskać dostęp do witryny z podstawową nazwą użytkownika i hasłem. Gdy tylko połączę się z witryną, pojawi się wyskakujące okienko, które wymaga uwierzytelnienia. Znam Login i hasło, jednak nie wiem, jak je przekazać w ramach UrlFetchApp.

Var response = UrlFetchApp.fetch ("htp://00.000.000.000:0000/");
Logger.log(response.getContentText ("UTF-8"));

Aktualnie uruchomiony KOD Zwraca "Access Denied". Na powyższy kod nie zawiera rzeczywistego adresu, z którym łączę się ze względów bezpieczeństwa. Brakuje "t "we wszystkich" http " w przykładach kodu, ponieważ są one wykrywane jako linki, a Stackoverflow nie pozwala mi przesłać więcej niż dwóch linków.

Jak mogę podać Login i hasło wraz z moją prośbą? Czy mogę kontynuować sesję po zalogowaniu się? A może moja następna Prośba UrlFetchApp zostanie wysłana z innego serwera Google wymagającego ponownego zalogowania?

Celem tutaj jest zalogowanie się do strony internetowej za infrastrukturą sieciową Googles, aby mogła działać jako proxy, a następnie muszę wydać kolejne żądanie UrlFetchApp na ten sam adres, który wyglądałby mniej więcej tak:

Var response = UrlFetchApp.fetch("htp://00.000.000.000:0000/vuze/rpc?json={"method":"torrent-add","arguments":{"filename":"htp://vodo.net/media/torrents/anything.torrent","download-dir":"C:\temp"}}");
Logger.log(response.getContentText ("UTF-8"));

Author: user3586062, 2014-05-08

2 answers

Na to pytanie udzielono odpowiedzi w innym miejscu. Oto podsumowanie:

Bruce Mcpherson

basic authentication looks like this...
    var options = {};
    options.headers = {"Authorization": "Basic " + Utilities.base64Encode(username + ":" + password)};

Lenny Cunningham

//Added Basic Authorization//////////////////////////////////////////////////////////////////////////////////////////

  var USERNAME = PropertiesService.getScriptProperties().getProperty('username');
  var PASSWORD = PropertiesService.getScriptProperties().getProperty('password');

  var url = PropertiesService.getScriptProperties().getProperty('url');//////////////////////////Forwarded

Porty Do WebRelay

  var headers = {
    "Authorization" : "Basic " + Utilities.base64Encode(USERNAME + ':' + PASSWORD)
  };

  var params = {
    "method":"GET",
    "headers":headers
  };

var reponse = UrlFetchApp.fetch(url, params);
 40
Author: user3586062,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-18 05:09:39

Nie udało mi się znaleźć linków źródłowych user3586062 (mogły zostać usunięte), ale biorąc pod uwagę podejście Bruce ' a McPhersona, Twój kod wyglądałby tak:

var options = {};
options.headers = {"Authorization": "Basic " + Utilities.base64Encode(username + ":" + password)};
UrlFetchApp.fetch("TARGET URL GOES HERE", options);
 4
Author: Augustine C,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-18 16:02:26