WebHooks und NOTIFY empfangen.. aber wie an den Inhalt kommen?

Moin,

mein Versuch Daten per Notify zu bekommen, haut nicht ganz hin :frowning:

In dem Array $_SERVER bekomme ich die Header-Daten, yaeh.


07.12.2015 21:10:19*| WebHook _SERVER*| Array
(
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => NOTIFY
    [QUERY_STRING] => 
    [HOOK] => /hook/........
    [PHP_AUTH_PW] => 
    [DOCUMENT_ROOT] => C:\IP-Symcon\webfront
    [REQUEST_URI] => /hook/....
    [REMOTE_ADDR] => 192.168.xxxx
    [PHP_AUTH_USER] => 
    [REQUEST_TIME_FLOAT] => 1449519019.5456
    [REQUEST_TIME] => 1449519019
    [argv] => Array
        (
        )
    [argc] => 0
)

Zuerst fällt auf, das $_SERVER[‚HOOK‘] die URI enthält, und nicht wie in der Doku Systemvariablen — IP-Symcon :: Automatisierungssoftware $_IPS[‚HOOK‘].

Und dann die große Frage, wie komme ich an den übertragenen Content :confused:
Ich bin so ziemlich jede Superglobal durch. Fehlt da vielleicht etwas in $_IPS[‚VALUE‘] ?

Michael

PS: In der Doku fehlt auch allgemein $_SERVER in der Liste der Variablen vom WebHook.

Den Body bekommst Du so:

$body = file_get_contents('php://input');

Zuerst fällt auf, das $_SERVER[‚HOOK‘] die URI enthält, und nicht wie in der Doku Systemvariablen — IP-Symcon :: Automatisierungssoftware$_IPS[‚HOOK‘].

Wird in der Doku korrigiert! :slight_smile:

paresy

@Paresy
Ist das so ‚gewollt‘?
Eher ungewöhnlich für die IPS-Welt.

Michael

Ja, das ist im Prinzip korrekt. Da es kein POST Request ist, kommst du nicht anders an die Rohdaten ran. Das ist der offizielle PHP-Weg :slight_smile:

Früher hieß das noch $HTTP_RAW_POST_DATA :slight_smile:

paresy

Jo, kann man ja machen.
Hatte mich nur etwas verwundert. Immerhin gibt es ja sonst auch alles in irgendeiner IPS-PHP-Variable :smiley:
Michael