0

Ich versuche, eine Antwort von Google Script zu erhalten. Aber es gibt mir einen Fehler: Das Skript abgeschlossen, aber der zurückgegebene Wert ist kein unterstützter Rückgabetyp.Das Skript wurde ausgeführt, aber der zurückgegebene Wert ist kein unterstützter Rückgabetyp.

Hier einige Script-Code:

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; 
 
}

Diese Antwort, dass ich von Hurl.it erhalten:

<!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

Ich nannte keine Funktion angezeigt 'Pass()'. Aus dieser Zeile: 'if (Pass (e))' Sie können einen 'try/catch'-Block hinzufügen, um bei einem Serverfehler einen Standardwert zurückzugeben. –

+0

Bearbeiteter GS-Code, immer noch nicht außerhalb des Editors. (Funktioniert gut beim Debuggen). Rückgabe des Vorschlagswerts - keine gute Lösung (Die Tabelle wird erfolgreich bearbeitet, aber der Wert wird nicht zurückgegeben. – huran438

+0

Probieren Sie "getContent()" in newResults aus. –

Antwort

1

Ihre Funktion doGet versucht zurückzukehren newResult.getContent(), die eine Zeichenfolge . Aber doGet ist nicht erlaubt, eine Zeichenfolge zurückzugeben. Es muss ein Objekt einer akzeptablen Klasse zurückgeben: HtmlOutput (erstellt mit HtmlService) oder TextOutput (erstellt mit ContentService).

So sollte es return newResult; nicht return newResult.getContent();

+0

Geändert von doGet(): http://pastebin.com/LtcV94bU, aber es funktioniert immer noch nicht (( – huran438

+0

"funktioniert nicht" ... wissen Sie, dass Sie sofortige E-Mail-Benachrichtigungen von Skriptfehlern erhalten können?) Außerdem gibt es einen Verweis auf die Funktion 'CheckOrAddData' und Sie habe diese Funktion nicht gepostet. –

+0

Aktualisiertes Google Script. Sowohl TextOutput als auch HtmlOutput funktionieren nicht. Ich habe keine Benachrichtigungen über meine E-Mail. Tut mir leid, aber ich weiß wirklich nicht, wo das Problem liegt – huran438