无法使用基本身份验证

时间:2017-11-17 03:26:17

标签: javascript csv google-apps-script google-sheets basic-authentication

我正在尝试获取一个压缩在URL中的CSV,这需要基本的身份验证。我无法做到这一点。我在'files'参数上遇到语法错误。这就是我试过的:

function importdatastreamcsv() {
  
  var user = 'user';
  var pw = 'pass';

  var csvUrl = 'https://example.com/api/datastream/download/58350?tableIds=67595&usePreferences=false';
  var csvContent = UrlFetchApp.fetch(csvUrl,{headers: {'Authorization': 'Basic ' + Utilities.base64Encode(user + ':' + pw, Utilities.Charset.UTF_8)}});
  var files = Utilities.unzip(csvContent)[0]; //syntax error on the argument! :(
  var csvData = Utilities.parseCsv(files.getDataAsString());
 

  var sheet = SpreadsheetApp.getActiveSheet().getActiveCell();
  sheet.setValues(csvData);

  
}

寻找其他替代方案,我注意到可以在html表中提取数据(不是zip-csv格式),所以我写了另一个脚本。它有点工作,但所有信息都是普通的html并且只存储在一个单元格中,因此几乎不可能阅读......这里是代码:

function importdatastreamhtml() {
  
  var user = 'user';
  var pw = 'pass';
  var csvUrl = 'https://example.com/api/datastream/download/58350?tableIds=67595&usePreferences=false&format=web'; 
  var csvContent = UrlFetchApp.fetch(csvUrl,{headers: {'Authorization': 'Basic ' + Utilities.base64Encode(user + ':' + pw, Utilities.Charset.UTF_8)}});
  var html = csvContent.getContentText();
 
  var sheet = SpreadsheetApp.getActiveSheet().getRange(1, 1);
  sheet.setValue(html);


}

我需要让这两个中的至少一个正确运行。我可以在这里找到什么?

输出应该是一个简单的表格。

非常感谢,

凯撒

0 个答案:

没有答案