Wahrscheinlich zu einfach ;-)

Hallo, ich hole mir per Api Call einen Token ab. Den möchte ich im weiteren Verlauf des Flows für weitere Abfragen nutzen - im Text zu "parsingTemplate" im Step "ApiCall" lese ich folgendes:

Template in Freemarker syntax to transform the response into a Spreadsheet... You can use the ${setVariable('key','value')} function to create/set a variable which can be used in the requestBody for all requests after first one.


Ich komme leider nicht darauf, wie ich das genau machen kann. Es muß ja irgendwie in einem json2spreadsheet-konformen Format erfolgen. Die Response sieht aber so aus:


{"access_token":"Tokendenichbrauche","token_type":"bearer","expires_in":604800}


Wie bekomme ich den access_token in eine Variable?


Danke & Gruß, Micha





Hallo Micha,


versuch mal folgendes:


${VARIABLE?keep_after('"access_token":"')?keep_before('","')}

Hallo Florian,


verstehe ich leider nicht. Das sieht für mich so aus, als sollte hier der Token als Teilstring ausgelesen werden - diese Grundidee hatte ich auch schon, wenn auch mit anderem Ansatz. Was aber entscheidend für mich ist: Wie bekomme ich einen solchen String als Flow-Variable gespeichert, so daß ich sie in späteren Steps nutzen kann? Oder habe ich Dich falsch verstanden, dann bitte ich um Erläuterung, an welcher Stelle genau ich das einsetzen kann.

Alternativer Ansatz zu einer Flowvariablen:


Lass dir die Variable in nem TextHtmlWriter-Step ausgeben, dann kannst du das ganze auch im Flow abrufen.

Hallo Micha,


um auf den Token zuzugreifen kannst du folgende Funktion verwenden:

json["access_token"]?replace("\"","")

Diese kannst du dann entweder deinem Spreadsheet hinzufügen und das dann durchschleifen oder (müsste man ausprobieren) über die setVariable Funktion diese abspeichern:

${setVariable('token', json["access_token"]?replace("\"",""))}

Viele Grüße

Stefan

Hi Florian,

danke für Deinen Input! Ich hätte aber doch gerne eine Anleitung, wie genau ich das Ergebnis als Flow-Variable speichern kann, weil ich sowas immer mal wieder brauchen könnte. Ist das möglich? Vielleicht auch bitte einen Input vom Synesty-Team dazu?


Gruß Micha

@Paco: Danke für den Ansatz - mir ist aber nicht klar, an welcher Stelle genau ich das erste Snippet einsetzen soll. ApiCall im ParsingTemplate ==> Fehler, TextHTMLWriter im Template ==> Fehler. Auch das setVariable hatte ich schon an verschiedenen Stellen probiert, ganz vereinfacht mit ${setVariable('counter',0)}, das klappt aber immer nur direkt in einem Spreadsheet, nicht z.B. in einem TextHTMLWriter-Step.


Nochmal zusammengefaßt: Ich hätte sehr gerne eine Lösung dafür: Es liegt vor: Der Token als Ergebnis eines Steps, aufrufbar mit ${meta.TEMPLATE_OUTPUT_STRING@TextHTMLWriter_2}:

Ich möchte diesen in eine Flowvariable überführen

Hallo Micha,


die setVariable Funktion der APICall Steps bezieht sich nicht auf die Flow Variablen. Mit der Funktion können Werte für den/die nächsten Calls des APICall Steps zwischengespeichert werden.

Es ist aktuell nicht möglich eine Flow Variable über einen Step zu verändern.


Am besten lässt du dir den Token in einem TextHTMLWriter Step ausgeben, wie Florian schon geschrieben hat. Den Output des Steps kannst du dann in allen anderen Steps verwenden. Der Flow sollte in etwa so aussehen:


APICalls Step mit (Standard) parsingTemplate:


TextHTMLWriter:



Beispiel Ergebnis TextHTMLWriter:



VG Torsten