web-dev-qa-db-ja.com

基本認証を使用したGoogle AppsスクリプトのurlFetchApp.Fetchの予期しないエラー

Google Appsスクリプトには、基本認証を使用してHTTPからCSVデータを取得し、スプレッドシートに配置します。

_CSVImport.gs_

_function parseCSVtoSheet(sheetName, url)
{
  // Credentials
  var username = "myusername";
  var password = "mypassword";
  var header = "Basic " + Utilities.base64Encode(username + ":" + password);
  
  // Setting the authorization header for basic HTTP authentication
  var options = {
    "headers": {
      "Authorization": header
    }
  };
  
  // Getting the ID of the sheet with the name passed as parameter
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName(sheetName);
  var sheetId = sheet.getSheetId();
  
  // Getting the CSV data and placing it into the spreadsheet
  var csvContent = UrlFetchApp.fetch(url, options).getContentText();
  var resource = {requests: [{pasteData: {data: csvContent, coordinate: {sheetId: sheetId}, delimiter: ","}}]};
  Sheets.Spreadsheets.batchUpdate(resource, spreadsheet.getId());
}
_

これは最近、ランダムに_UrlFetchApp.fetch_行に次のエラーが発生するまで上になっています。

Exception: Unexpected error: http://www.myurl.com/data/myfile.csv (line 21, file "CSVImport")

私が試してみました:

  • 認証ヘッダーではなくURLに資格情報を直接置く(私は「ログイン情報が許可されていない」とは異なるエラーを受けました)。
  • Base64への認証情報を右にエンコードするヘッダオブジェクトに渡して(同じエラーが発生しませんでした)。
  • 認証を完全に削除する(予測可能にiは、HTTPページから401の応答を受信しました)。

私は他に何を試みるべきかわからない、そしてこれが突然のすべてを壊した理由。何かアドバイス?

12
Step

公式課題トラッカーから#346と同様に https://issuetracker.google.com/issues/175141974

こんにちは私は私が働いている可能性のある解決策を見つけました。このように空の{}を入力してみてください

Urlfetchapp.fetch(apilink、{});

それは私のために働いた

私はこれを試してみました、そしてそれも私のために働いています。 "Chrome v8"で搭載された "新しいAppsスクリプトランタイムを使用している場合でも機能します。

0
BaconCatBug