2017-01-03 1 views
2

Ich habe versucht, Daten aus meinem Mixpanel-Projekt mithilfe der UrlFetchApp von Apps Script abzurufen. Es umfasst das Senden eines JQL-Skripts im Hauptteil der HTTP-POST-Anforderung. Hier ist das JQL Skript:Ende des Eingabefehlers beim Ausführen von Mixpanels JQL-Skript mit HTTP-API mithilfe von Apps Script

var jqlScript = 'function main() { return Events(params).filter(function(event){return event.name == \"purchase\";}).reduce(mixpanel.reducer.count());}'; 
var params = '{\"from_date\":\"' + getDateString(aWeekAgo) + '\",\"to_date\":\"' + getDateString(yesterday) + '\"}'; 
var payload = { 
    script: jqlScript, 
    params: params 
}; 

var options = { 
    'method': 'post', 
    'headers': { 
    'Authorization' : 'BasiC#############' // my API secret 
    }, 
    'payload': payload 
}; 

var data = UrlFetchApp.fetch('https://mixpanel.com/api/2.0/jql/', options); 

Aber ich erhalte diesen Fehler in der Ausführung Transkript:

"Die Anforderung ist fehlgeschlagen für https://mixpanel.com/api/2.0/jql/ Code zurückgegeben 400. Verkürzte Server-Antwort: {" Anforderung ":" /api/2.0/jql/"," error ":" Fehler beim Überprüfen des Skripts: Uncaught exception SyntaxError: Unerwartetes Ende der Eingabe \ nfunction main() {return E ... (verwenden Sie die Option muteHttpExceptions, um die vollständige Antwort zu untersuchen) (Zeile 22, Datei "Code")) "

Ich habe das Skript überprüft und sichergestellt, dass es kein '}' oder ähnliches gibt, wie andere Fragen auf dieser Seite vorgeschlagen haben bin hier festgefahren!

Antwort

2

Ich nehme an, es ist etwas falsch mit App Script ist Entkommen, denn ich weiß nicht, warum das funktioniert, aber ich fand eine funktionelle Lösung:

Wenn Sie alle Semikolons von Ihrem JQL entfernen/JavaScript-String, es wird funktionieren.

var jqlScript = 'function main() { return Events(params).filter(function(event){return event.name == "purchase\"}).reduce(mixpanel.reducer.count())}'; 
Verwandte Themen