我试图从Google Script获得回复。但它给了我一个错误:脚本已完成,但返回的值不是支持的返回类型。
这里有一些脚本代码:
function doGet(e) {
var result = 'ERROR PASSWORD';
if (Pass(e)) {
result = ParseRequest(e);
}
return ContentService.createTextOutput(result);
}
function ParseRequest(e) {
var result;
if (!CheckOrAddData(e)) {
result = 'FAILED';
} else {
result = 'ACTIVATED PROMOCODE';
}
return result;
}
function Pass(e) {
var ss = SpreadsheetApp.openById(e.parameters.ssid);
var sheet = ss.getSheetByName('PASS');
var sheetPass = sheet.getDataRange().getValue();
if (e.parameters.pass == sheetPass)
return true;
else
return false;
}
function CheckOrAddData(e) {
var promoCode = e.parameters.promocode;
var nickName = e.parameters.username;
var ss = SpreadsheetApp.openById(e.parameters.ssid);
var sheet = ss.getSheetByName('DATA');
if (nickName == "") {
return false;
}
var range = sheet.getRange('A1:B');
var rows = range.getNumRows();
var values = range.getDisplayValues();
for (var i = 0; i < rows; i++) {
if (values[i][0] == promoCode) {
if (values[i][1] == 'NO') {
var cell = range.getCell(i + 1, 2);
cell.setValue(nickName);
return true;
}
if (values[i][1] == nickName) {
return true;
}
}
}
return false;
}
&#13;
我从Hurl.it得到的回复:
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" href="//ssl.gstatic.com/docs/script/images/favicon.ico">
<title>Error</title>
<style type="text/css">body {background-color: #fff; margin: 0; padding: 0;}.errorMessage {font-family: Arial,sans-serif; font-size: 12pt; font-weight: bold; line-height: 150%; padding-top: 25px;}</style>
</head>
<body>
<div>
<img src="//ssl.gstatic.com/docs/script/images/logo.png">
</div>
<center>The script completed but the returned value is not a supported return type.</center>
</body>
</html>
答案 0 :(得分:1)
您的函数doGet
正在尝试返回newResult.getContent()
这是一个字符串。但是doGet
不允许返回字符串。它必须返回一个可接受类的对象:HtmlOutput(使用HtmlService创建)或TextOutput(使用ContentService创建)。
因此,它应该是return newResult;
而不是return newResult.getContent();