Я пытался заставить работать API управления навыками, и сегодня утром я нашел новый контрольно-пропускной пункт, ничего не изменив. Я получал «Пользователь не согласился с этой ошибкой операции прошлой ночью», и сегодня утром, не меняя ничего, я получаю вот этот журнал скручивания:
Пытаясь поразить API тем же кодом, что и прошлой ночью, и теперь я получаю:
string(513) "* Hostname api.amazonalexa.com was found in DNS cache
* Trying 54.239.28.187...
* TCP_NODELAY set
* Connected to api.amazonalexa.com (54.239.28.187) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api.amazonalexa.com:443
* stopped the pause stream! * Closing connection 0 "
Вот код, который я использую:
ob_start();
$out = fopen('php://output', 'w');
// exchange the access token for list of skills
$c = curl_init('https://api.amazonalexa.com/v0/skills/');
curl_setopt($c, CURLOPT_HTTPHEADER, array(
'Authorization: ' . $access_token,
'Accept: application/json',
'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'
));
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_VERBOSE, true);
curl_setopt($c, CURLOPT_STDERR, $out);
curl_setopt($c, CURLOPT_POST, 1);
$r = curl_exec($c);
curl_close($c);
fclose($out);
$debug = ob_get_clean();
var_dump($r);
echo "<BR><BR>";
var_dump($debug);
$d = json_decode($r);
$ r в этом случае выдает bool (false) и $ d выводит NULL. Я размещаю свой сервер на Godaddy, если это имеет значение. Я все еще могу войти в систему с помощью Amazon и получить маркер доступа. Таким образом, это не похоже на проблему хостинга.
Согласно трассировке ошибок, ваше соединение имеет ошибку SSL. Наиболее очевидная причина, по которой ваша размещенная конечная точка либо не имеет действительной HTTPS-сертификации, либо ваша HTTPS-конфигурация неверна. Это может быть легко проверено, если вы каким-то образом можете достичь своей конечной точки через браузер или запрос скручивания.
Других решений пока нет …