如何将UrlFetchApp与凭据一起使用?谷歌脚本

时间:2014-05-08 15:34:26

标签: login google-apps-script basic-authentication credentials urlfetch

我正在尝试使用Google Scripts UrlFetchApp来访问具有基本用户名和密码的网站。一旦我连接到该站点,就会出现需要身份验证的弹出窗口。我知道登录名和密码,但我不知道如何在UrlFetchApp中传递它们。

  

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

目前正在运行该代码会返回" Access Denied"。出于安全原因,上面的代码不包含我要连接的实际地址。 A" t"所有" http"在代码示例中因为它们被检测为链接而Stackoverflow不允许我提交两个以上的链接。

如何将登录名和密码与我的请求一起传递?无论如何我还可以在登录后继续我的会话吗?或者我的下一个UrlFetchApp请求是否会从另一台要求我再次登录的Google服务器发送?

此处的目标是登录Googles网络基础架构背后的网站,以便它可以充当代理,然后我需要向相同的地址发出另一个UrlFetchApp请求,如下所示:

  

var response = UrlFetchApp.fetch(" htp://00.000.000.000:0000 / vuze / rpc?json = {" method":" torrent-add" "参数&#34 ;: {"文件名":" HTP://vodo.net/media/torrents/anything.torrent","下载-DIR& #34;:" C:\ temp中"}}&#34);
  Logger.log(response.getContentText(" UTF-8&#34));

2 个答案:

答案 0 :(得分:48)

此问题已在其他地方得到解答。 以下是摘要:

布鲁斯麦克弗森

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
     

WebRelay的端口

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

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

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

答案 1 :(得分:6)

我无法找到user3586062的源链接(它们可能已被删除),但采用Bruce Mcpherson的方法,您的代码将如下所示:

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