22

Sto cercando di utilizzare Google Scripts UrlFetchApp per accedere a un sito Web con un nome utente e una password di base. Non appena mi collego al sito appare un popup che richiede l'autenticazione. Conosco login e password, tuttavia non so come passarli all'interno di UrlFetchApp.Come utilizzare UrlFetchApp con le credenziali? Google Script

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

Attualmente in esecuzione il codice restituisce "Accesso negato". Il codice sopra riportato non contiene l'indirizzo effettivo a cui mi sto collegando per motivi di sicurezza. Una "t" manca a tutti gli "http" negli esempi di codice perché vengono rilevati come collegamenti e StackOverflow non mi consente di inviare più di due collegamenti.

Come posso passare il login e la password insieme alla mia richiesta? Inoltre, è possibile continuare la sessione una volta effettuato l'accesso? O la mia prossima richiesta di UrlFetchApp verrà inviata da un altro server di Google che mi richiede di accedere di nuovo?

L'obiettivo qui è quello di accedere al sito web dietro infrastruttura di rete Googles in modo che possa agire come un proxy poi ho bisogno di emettere una nuova richiesta UrlFetchApp allo stesso indirizzo che sarebbe simile a questa:

var response = UrlFetchApp.fetch ("htp: //00.000.000.000: 0000/vuze/rpc? json = {" metodo ":" torrent-add "," argomenti ": {" nomefile ":" htp: // vodo. net/media/Torrent/anything.torrent " "download-dir": "C: \ temp"}}");
Logger.log (response.getContentText ("UTF-8"));

risposta

34

Questa domanda è stata risolta su un altro dove. Ecco il sommario:

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 

Porte da WebRelay

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

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

var reponse = UrlFetchApp.fetch(url, params); 
+4

So che questo è un post davvero vecchio .. Ma potresti fornire i link al post originale per i riassunti? – pravin

3

non sono riuscito a trovare user3586062 's link di origine (essi possono essere stati cancellati), ma prendendo l'approccio di Bruce Mcpherson, il codice sarebbe simile a questa:

var options = {}; 
options.headers = {"Authorization": "Basic " + Utilities.base64Encode(username + ":" + password)}; 
UrlFetchApp.fetch("TARGET URL GOES HERE", options); 
Problemi correlati