jheinz
1
Benötige Hilfe.
Wie bekomme ich z.B. den „recordType“ in eine Variable. ?
Versucht habe ich das:
<?php
IPS_LogMessage("WebHook GET", print_r($_GET, true));
IPS_LogMessage("WebHook POST", print_r($_POST, true));
IPS_LogMessage("WebHook IPS", print_r($_IPS, true));
IPS_LogMessage("WebHook RAW", file_get_contents("php://input"));
echo "Meldung: " . $_GET['Meldung'];
SetValue(26285, $_POST->{"recordType"});
Bitte die Meldung einmal mit Rechtsklick kopieren und hier als Text Posten. Danke.
Michael
dass muss vermutlich $_POST['records'][0]['recordType']
heissen.
- diese Variablen sind Arrays, keine Objekte
-
recordType ist nach dem sichtbarem Meldungs-Fragment Bestandteil von record und record ist ein Array.
Screenshots sind i.d.R. nicht wirklich aussagefähig / interpretierbar.
$_POST['records']
mus noch umgewandelt werden mit
$temp = $json_decode($_POST['records']);
SetValue(26285, $temp->recordType);
jheinz
5
Vielen Dank für die schnelle Antwort, funktioniert leider nicht.
09.02.2023, 20:29:10 | WebHook POST | Array
(
[lockId] => 7817026
[notifyType] => 1
[records] => [{"lockId":12345,"electricQuantity":100,"serverDate":1675970950555,"recordType":8,"success":1,"lockMac":"F5:xx:xx:06:F9:xx","keyboardPwd":"1234567","lockDate":1675970746000,"username":"jh daumen"}]
[admin] => jxxxx@gmail.com
[lockMac] => xx:E1:xx:06:F9:xx
)
jheinz
6
$temp = json_decode($_POST['records']);
IPS_LogMessage("WebHook IPSjj", print_r($temp, true));
sieht dann so aus
09.02.2023, 20:55:17 | WebHook IPSjj | Array
(
[0] => stdClass Object
(
[lockId] => 7817026
[electricQuantity] => 100
[serverDate] => 1675972517333
[recordType] => 8
[success] => 1
[lockMac] => xxxxxxxxxxx
[keyboardPwd] => xxxxxxxxx
[lockDate] => 1675972299000
[username] => jh daumen
)
)
Und $temp->recordType liefert nicht den gewünschten Output?
Nachtrag: $temp[0]->recordType
jheinz
8
Habs hin bekommen. Danke für die Unterstützung:
$temp = json_decode($_POST['records']);
SetValue(28944, $temp[0]->{"recordType"});
Darum ja den Text und kein Bild Posten.
Dann können die Helfer es auch testen.
So war da raten dabei.
Michael