Google App Script

【Google Apps Script】エラー対処一覧

gas-アイキャッチ

スクリプトが完了しましたが、返された値はサポートされている戻り値の型ではありませんでした。

原因:returnにTextOutputまたはHtmlOutput以外の値が設定されているため

function doPost(e){
	return "<p>登録しました。</p>";
}
function doPost(e){
	return 1;
}

対処策:正しい戻り値を設定する

GASでは、TextOutputまたはHtmlOutputしか、戻り値に設定できないので、以下の例のようにする。

return ContentService.createTextOutput("<p>登録しました。</p>");

参考サイト

GAS ビギナーが GAS を使いこなすために知るべきこと 10 選

Exception: パラメータ(number,number[])が SpreadsheetApp.Sheet.appendRow のメソッドのシグネチャと一致しません。(行 、ファイル「コード」)

原因:配列の外に変数や値がある(タイピングミス)

  for(var i = 0; i < data.length; i++)
  {
    sheet.appendRow(data.A, [data.B, data.C, data.D]);
  }

この例では、appendRowメソッドの引数として、配列を渡しているが、その配列の外に誤って、変数をセットしていることが原因。

対処策:引数の配列内に値を移動する

  for(var i = 0; i < data.length; i++)
  {
    sheet.appendRow([ data.A, data.B, data.C, data.D]);
  }

Moved Temporarily
The document has moved here. スクリプト関数が見つかりません: doGet

原因:リダイレクト設定が無効になっているため

curlでdoPost()にアクセスした際、CURLOPT_FOLLOWLOCATIONオプションが未設定またはfalseになっている。

$ch = curl_init("スプレッドシートのURL");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, ["JSON" => $json]);
$result = curl_exec($ch);
curl_close($ch);


解決策:リダイレクトを設定する

curlの場合、下記を追加すればいいだけ。

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

参考サイト

TypeError: ContentService.createHtmlOutput is not a function(行、ファイル「コード」)

原因:存在しないメソッドを呼んでいる

return ContentService.createHtmlOutput("<p>登録しました。</p>");

解決策:HtmlOutputをreturn擦る場合、正しい方法でHTMLを返してあげる

以下サイトを参照ください。

[GAS][HTML]静的ページを表示するには: 逆引きGoogle Apps Script