2016-04-05 9 views
0

Ich verwende dieses Skript Google App Survey Monkey Ergebnisse abfragen:start_created_at arbeiten nicht mit/Sammler/{id}/Antworten

function surveyMonkey() { 
    var token = "xxx"; 
    var survey = "xxx"; 
    var options = {"headers": {"authorization": "bearer "+token}}; 
    var api_key = "xxx"; 
    var url = 'https://api.surveymonkey.net/v3/'; 
    var responseURL = 'collectors/xxx/responses?api_key='+api_key 
    +'&sort_by=date_modified&sort_order=DESC' 
    +'&start_modified_at=2016-04-01T00:00:00+00:00' 
    var responses = UrlFetchApp.fetch(url+responseURL, options); 
    var responseData = JSON.parse(responses.getContentText()); 
    Logger.log(responseData); 
} 

Ich versuche, die Antwortsammler zu nennen „/ Sammler/{ ID}/Antworten ". Wenn ich die Abfragezeichenfolge für start_modified_at ausschließe, erhalte ich eine gültige JSON-Antwort. Wenn ich versuche, start_modified_at einzubeziehen, erhalte ich keine Antwort.

Ich habe das auch nur mit "/ Umfragen/{ID}/Antworten" versucht und ich bekomme die gleichen Ergebnisse. Es funktioniert ohne das Datum und funktioniert nicht, wenn ein Datum enthalten ist. Ich habe meine eigenen Informationen entfernt und durch xxx ersetzt, um den Code zu teilen.

Ziel ist es, nur Antworten von gestern zurückzugeben und sie an eine Tabelle anzufügen.

Dies geschieht auch mit jeder Abfragezeichenfolge, die eine Datumszeichenfolge enthält. Gibt es irgendwelche Ideen, was ich falsch machen könnte und wie ich es beheben kann?

Antwort

0

Also das Problem ist, dass die + mit einem Leerzeichen ersetzt wird, bis es zu unserem Ende kommt. Daher schlägt die Validierung fehl. Sie müssen die URL-Parameter verschlüsseln, bevor Sie sie an uns senden. In diesem Fall ist das "+" also "% 2B".

Anscheinend Google App Skript ist wie Javascript und Sie können es mit encodeURIComponent('start_modified_at=2016-04-01T00:00:00+00:00') lösen.

Wir müssen definitiv daran arbeiten, Ihnen bessere Fehlermeldungen für ungültige URL-Parameter zurückzugeben! Versuchen Sie das und lassen Sie uns wissen, wenn Sie immer noch Probleme haben.

+0

Die URL, die an meinem Ende im Debugger gesendet wird, sieht wie folgt aus [link] (https://api.surveymonkey.net/v3/collectors/xxx/responses?api_key=xxx&sort_by=date_modified&sort_order=DESC&start_modified_at=2016-04-01T12 : 56: 55 + 00: 00) – chipoglesby

+0

Und das ist die vollständige Fehlerantwort, die ich erhalte, wenn ich die gesamte URL fest codiere: Anfrage fehlgeschlagen für https://api.surveymonkey.net/v3/surveys/xxx/ Antworten/bulk? api_key = xxx & sort_by = Datum_modifiziert & Sortierreihenfolge = DESC & per_page = 10 & start_modified_at = 2016-04-01T12: 56: 55 + 00: 00 gab den Code 400 zurück. Abgeschnittene Serverantwort: {"error": {"docs": "https: // developer.surveymonkey.com/api/v3/#error-codes "," message ":" Ungültige URL-Parameter. "," id ":" 1003 "," name ":" BadReque ... (verwenden Sie die Option muteHttpExceptions für vollständige Antwort prüfen) (Zeile 19, Datei "surveyMonkey") – chipoglesby

+0

Ja, also in diesem Fall Das Änderungsdatum sollte 'start_modified_at = 2016-04-01T12% 3A56% 3A55% 2B00% 3A00' sein –