Hallo,
leider bekomme ich es weiterhin nicht hin, ich bekomme immer ein HTTP-Error 401 mit der Meldung „Unable to authenticate user.“.
Ich habe extra einen neuen Account eingerichtet, es mit unterschiedlichen IP’s probiert und auch Module anderer Systeme ausprobiert - immer mit dem gleichen Misserfolg.
Grundsätzlich muss es aber richtig sein, denn ich habe einmal (!) die korrekte Antwort bekommen, dann die Mail mit dem OneTime-Code erhalten und konnte den Token abrufen … aber das funktionierte genau einmal.
Kannst Du mal das Script mal bitte ausprobieren mit Deiner email und password?
<?php
declare(strict_types=1);
$email = '<uuu.domain.tdl>';
$password = 'xxx';
$country = 'DE';
$api_host = 'https://appapi.cp.dyson.com';
$url = $api_host . '/v3/userregistration/email/userstatus?country=' . $country;
$postdata = [
'Email' => $email,
];
// $user_agent = 'Dalvik/2.1.0 (Linux; U; Android 6.0; Android SDK built for x86_64 Build/MASTER)';
$user_agent = 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Google Build/OPM6.171019.030.E1)';
$headers = [
'User-Agent: ' . $user_agent,
'Accept: */*',
'Content-Type: application/json',
];
echo 'url=' . $url . PHP_EOL;
echo 'headers=' . print_r($headers, true) . PHP_EOL;
echo 'postdata=' . json_encode($postdata) . PHP_EOL;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postdata));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$cdata = curl_exec($ch);
$cerrno = curl_errno($ch);
$cerror = $cerrno ? curl_error($ch) : '';
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo 'cerrno=' . $cerrno, '(' . $cerror . '), httpcode=' . $httpcode . ', cdata=' . $cdata . PHP_EOL;
gruß
demel