Das Skript empfängt vermutlich nur etwas wenn auch ein Event kommt
Anscheinend kann das das Terminal und cURL nicht ?
<?php
$header = array (
'Accept: text/event-stream',
'Authorization: Bearer ##########'
);
$url = 'https://api.home-connect.com/api/homeappliances/SIEMENS-SX578S06TE-68A40E0021F0/events';
$opts = array (
'http' => array (
'method' => "GET",
'header' => $header
)
);
$context = stream_context_create ( $opts );
$fp = fopen ( $url, "rb", false, $context );
while ( 1 ) {
$line = stream_get_line ( $fp, 4096 );
echo $line . "\n";
}
?>
a:1:{s:4:"data";a:1:{s:14:"homeappliances";a:1:{i:0;a:7:{s:4:"name";s:15:"Geschirrspüler";s:5:"brand";s:7:"SIEMENS";s:3:"vib";s:10:"SX578S06TE";s:9:"connected";b:1;s:4:"type";s:10:"Dishwasher";s:7:"enumber";s:13:"SX578S06TE/01";s:4:"haId";s:31:"SIEMENS-SX578S06TE-68A40E0021F0";}}}}
public function makeRequest($path, $method = 'GET', $params = array(), $put_body = NULL)
{ // $params = URL-args/-parameter für den Zugriff
$ch = curl_init();
$options = self::$CURL_OPTS;
if ($params) {
if (isset($params['access_token'])) {
$options[CURLOPT_HTTPHEADER][] = 'Accept: application/vnd.bsh.sdk.v1+json,text/event-stream';
$options[CURLOPT_HTTPHEADER][] = 'Authorization: Bearer '.$params['access_token'];
unset($params['access_token']);
}
switch ($method)
{
case 'GET': // API-call via GET + AUTHENTIFICATION beim Endpoint
$path .= '?'.http_build_query($params, null, '&');
$this->logKlasse('make/get/url ................... '.$path);
$this->logKlasse('make/get/par ................... '.serialize($params));
break;
case 'EVENT': // API-call via GET / EVENT ...
$options[CURLOPT_HTTPHEADER][] = 'Accept: text/event-stream';
$options[CURLOPT_HTTPHEADER][] = 'Cache-Control: no-cache';
$this->logKlasse('make/event/par ................. '.serialize($params));
break;
case 'POST': // API-call via POST ... Access-Token aus Code + Refresh
$options[CURLOPT_HTTPHEADER][] = 'Content-Type: application/x-www-form-urlencoded';
$options[CURLOPT_POSTFIELDS] = http_build_query($params, null, '&');
$this->logKlasse('make/post/par1 ................. '.serialize($params));
$this->logKlasse('make/post/par2 ................. '.$options[CURLOPT_POSTFIELDS]);
break;
case 'PUT': // API-call via PUT ... Settings + Progams
$options[CURLOPT_URL] = $path;
$options[CURLOPT_HTTPHEADER][] = 'Content-Type: application/vnd.bsh.sdk.v1+json';
$options[CURLOPT_HTTPHEADER][] = 'Content-Length: '.strlen($put_body);
$options[CURLOPT_CUSTOMREQUEST] = 'PUT';
$options[CURLOPT_POSTFIELDS] = $put_body;
$this->logKlasse('make/put/url ................... '.$path);
break;
case 'DELETE': // API-call via DELETE ... Programm beenden
$options[CURLOPT_URL] = $path;
$options[CURLOPT_CUSTOMREQUEST] = 'DELETE';
break;
}
}
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar