Я новичок в веб-сервере и пытаюсь выполнить PHP-скрипт из Amazon Echo.
В основном у меня работает веб-сервер apache (доступный из интернета через порт 443). У меня также есть скрипт PHP внутри моего веб-сервера https://web-server.mine/script.php
Я успешно запустил скрипт PHP из веб-браузера с базовой веб-аутентификацией.
Сейчас я пытаюсь сделать POST-запрос из комплекта навыков Amazon Alexa, но я не знаю, как передать учетные данные, чтобы он мог позвонить по URL-адресу.
Я не совсем понимаю, о чем вы спрашиваете, поэтому я постараюсь ответить на все мои интерпретации.
Если вы пытаетесь убедиться, что именно Alexa Skill пытается получить доступ к вашему URL-адресу, я нашел самый простой способ аутентификации, проверив applicationId по данным POST:
// Get raw POST data
$post = file_get_contents( 'php://input' );
// Decode the JSON into a stdClass object
$post = json_decode( $post );
// Check the applicationId to make sure it's your Alexa Skill
if ( 'amzn1.echo-sdk-ams.app.[your-unique-value-here]' == $post->session->application->applicationId ) {
// Insert code to run if the applicationId matches
echo 'The applicationId matches!';
} else {
// Insert code to run if the applicationId does NOT match
echo 'The applicationId does NOT match!';
}
Если вы идете по этому пути, вам нужно убедиться, что вы создали действительный сертификат SSL, как показано здесь: Создать закрытый ключ и самоподписанный сертификат для тестирования
Если вы пытаетесь сделать запрос POST на другой URL из вашего скрипта, попробуйте использовать file_get_contents()
как описано здесь: Как разместить данные в PHP с помощью file_get_contents?
Кстати, возможно, стоит рассмотреть возможность использования набора классов PHP, которые были разработаны для облегчения создания навыков Alexa, как этот: https://github.com/develpr/alexa-app
Я лично запускаю Node.js на Raspberry Pi и использую пакеты Node alexa-app-server
а также alexa-app
сделать создание и размещение нескольких навыков намного проще. Если это то, что вас интересует, просто Google «nodejs alexa-app-server» для последних ссылок на эти пакеты.
Других решений пока нет …