Genau. Du willst einen WebHook verwenden und dann die ipmagic.de Adresse mit dem WebHook als Zieladresse angehen. Du bekommst dann die Daten in das Skript, welche du beim Hook hinterlegt hast.
Wie kann ich dann die Daten in dem Skript empfangen? Wie müsste dazu ein einfaches Skript aussehen? Ich würde vielleicht ersteinmal in eine Textbox schreiben, damit ich das grundsätzlich testen kann. Als zweiter Schritt wäre dann die JSON-Daten weiter zu verarbeiten.
Du richtest im Hook Control ein Skript als Empfänger ein, beispielsweise für den Hook „test“.
Dann geht die Anfrage deines Programms an …ipmagic.de/hook/test/.
Innerhalb des Skripts kannst du dann auf die Systemvariablen $_GET bzw. $_POST zugreifen, je nachdem, ob du GET oder POST verwendest, die du dann beispielsweise direkt per SetValue in eine Stringvariable schreiben kannst.
Entschuldigt bitte, aber da komm ich nicht ganz mit. Mein Ziel ist es, wie oben beschrieben den Datensatz aus dem HTTP-Aufruf in eine Stringvariable zu bringen.
SetValueString(35039, $_POST);
funktioniert so einfach nicht.
Aber wahrscheinlich muss ich GET und POST noch etwas genauer studieren.
Das Skript sieht für einen ersten Test richtig aus. Hast du den Hook auch korrekt im Hook Control registriert und führst auch einen POST aus?
Vielleicht kannst du ja mal einen Screenshot von deinem Hook Control posten und uns verraten auf welchen Endpunkt genau die Anwendung zugreift. Ich vermute bei einem davon einen Fehler.
Da $_POST in der Regel ein Array ist, würde ich zuerst mit dem Script aus der Doku testen!
Ein Array kannst du nicht so direkt in eine Symcon Variable schreiben.
Michael
In einem Test wurde auf die Variable etwas geschrieben. Mein Problem ist wahrscheinlich, dass die Anwendung, wo ich es eigentlich einsetzen möchte, irgendwie im Array nichts übergibt. Da muss ich die Seite erstmal näher beleuchten, was da los ist.
Mit meinen rudimentären Erfahrungen zu JSON würde ich z.B.:
<?php
//???wie empfange ich aus dem Webhook den Datensatz und schreibe ihn in $data??? oder anders???
$json = json_decode($data);
$Nachricht = $json->'message';
$Name = ($json->'event'->'name';
setvaluestring(23205, $Nachricht);
setvaluestring(29801, $Name);
Die Frage ist, ob das so richtig ist und vorallem wie ich den Datensatz empfange, um ihn weiter zu verarbeiten?
Das wäre ja einfach. Aber leider kommt die Fehlermeldung „Undefined index: message in …“. Das wird als Antwort geschickt, wenn ich den HTTP-Request abschicke.
Es scheint beim Sender noch etwas falsch zu sein. Denn die Daten stehen nur im RAW, das Array von POST ist leer und somit gibt es keine Variablen. Da muss ich mich erstmal mit dem Sender auseinander setzen.
Ja, die Ausgabe passt wahrscheinlich nicht weil ich da ein bisschen was durcheinander gebracht habe. Ich hatte die RAW-Ausgabe zur Simulation über webhook.site nochmal ausgesendet. Da kommt dieser Quatsch zustande.
Vom eigentlichen Sender kommt in RAW folgendes an:
Weil es dir keine Daten in der Formatierung eines Formulars sendet, sondern einfach einen String.
Also nimm das aus RAW und mit json_decode kommst du dann an dein Ziel
Michael